0
私は以下のデータを持つテーブルを持っています。LINQでgroup byを使用して作成した子データをマージする方法はありますか?
私は文書IDによってグループにデータをたいた後、カンマ区切りを使用して一緒にDocPropIdentifyNameとメタ値をマージします。
を、私は以下のようにしますforeachを使用して、それをやっている:出力は次のようになります
var test = (from r in lstDocSearch
group r by r.DocumentID
into g
select new
{
DocumentID = g.Key,
MetaValues = g.ToList()
}).ToList();
List<DocSearch> list = new List<DocSearch>();
foreach (var item in test)
{
foreach (var item2 in item.MetaValues)
{
var check = list.Exists(x => x.DocumentID == item2.DocumentID);
if (check)
{
var find = list.FirstOrDefault(x => x.DocumentID == item2.DocumentID);
find.MetaValue = find.MetaValue + ", " + item2.MetaValue;
find.DocPropIdentifyName = find.DocPropIdentifyName + ", " + item2.DocPropIdentifyName;
}
else
{
DocSearch objDocSearch = new DocSearch();
objDocSearch.DocumentID = item2.DocumentID;
objDocSearch.DocPropIdentifyID = item2.DocPropIdentifyID;
objDocSearch.DocPropIdentifyName = item2.DocPropIdentifyName;
objDocSearch.MetaValue = item2.MetaValue;
list.Add(objDocSearch);
}
}
}
をしかし、私は、LINQのではなく、コレクションをループでこれをやりたいです。出来ますか?
スポットをオンにすると、私が許可するとすぐに回答が受け付けられます。 –