【C#】リスト処理

6519 ワード

ObservableCollectionタイプを宣言し、コレクションの変更を記録しやすい
private ObservableCollection<TManufOrdEx> _ManufOrdExList;
///       
public ObservableCollection<TManufOrdEx> ManufOrdExList { get { return _ManufOrdExList; } set { _ManufOrdExList = value; RaisePropertyChanged(); } }

フィールドに基づいてグループ化、合計
 List<TManufOrdEx> manufDisLineNos = manufOrdList.Where((x, i) => manufOrdList.FindIndex(z => z.sellConLineNo == x.sellConLineNo) == i).ToList();
 sumKgs = manufDisLineNos.Sum(t => t.kgs);

新しいコレクションにデータを追加し、すでに追加したものは追加しません(重量除去)
 List<TManufOrdEx> copyList = new List<TManufOrdEx>();
     foreach (TManufOrdEx str in ManufOrdList)// LIST  
     {
         if (copyList.Count > 0)
         {

             bool IsRepeat = copyList.Any<TManufOrdEx>(p => p.id == str.id);
             if (IsRepeat)
             {
                 continue;
             }
             else
             {
                 copyList.Add(str);
             }
         }
         else
         {
             copyList.Add(str);
         }

     }
     ManufOrdList = new List<TManufOrdEx>();
     ManufOrdList = copyList;