1
私は顧客のマスターリストを別の顧客リストとマージしようとしています。顧客ごとに、値がすでに存在する場合(nullでない場合)、マスター入力リストから値を保持したい場合は、それを他のリストの対応する値に置き換えます。このような2つのエンティティをマージし、LINQでヌル値を削除しますか?
何か:
public class Customer
{
public int ID { get; set; }
public string Card_ID { get; set; }
public decimal? Cash { get; set; }
}
var masterlist = new List<Customer>()
{
new Customer() { ID = 1, Cash = 25 },
new Customer() { ID = 2, Card_ID = "card2" }
};
var existinglist = new List<Customer>()
{
new Customer() { ID = 1, Card_ID = "card1" },
new Customer() { ID = 2, Card_ID = "card12222222222", Cash = 27 }
};
var mergedlist = (from a in masterlist
from b in existinglist
where a.ID == b.ID
select new
{
ID = a.ID,
Card_ID = (a.Card_ID == null ? b.Card_ID : a.Card_ID),
Cash = a.Cash.HasValue ? a.Cash : b.Cash
}).ToList();
マージされたリストで、予想される結果は次のようになります:
{ ID = 1, Card_ID = "card1", Cash = 25 }
{ ID = 2, Card_ID = "card2", Cash = 27 }
今、私のポイントは、私は私のエンティティで50の以上の性質を持っている、です。私のselect
句で50個の条件文をすべて手作業でコーディングするよりも簡単にマージを行う方法はありますか?
あなたは、少なくともそれは 'Card_ID = a.Card_Idに短縮できますか? b.Card_Id'。 – juharr