在列表中查找不同的数据集

时间:2013-12-20 15:14:44

标签: c#

我有一个结构例如:

struct DataSet
{ 
   string a, 
   string b , 
   string c, 
   string d
}

我有一个数据集列表,例如:List<DataSet> DataSets = new List<DataSet>();

我想在列表中找到不同的数据集,忽略字符串c

E.g

如果我在DataSet1具有的列表中有两个DataSet(a = 1,b = 2, c = 3, d = 4)且DataSet2有(a = 1,b = 2, c = 13, d = 4)

作为我的结果,我应该只获得一个DataSet值,忽略c保持的任何值。所以我的结果是DataSet1(a = 1,b = 2,c = 3,d = 4)或DatsSet2(a = 1,b = 2,c = 13,d = 4),但不是两者。

任何想法?

1 个答案:

答案 0 :(得分:3)

只需使用GroupBy并对您关注的三个列进行分组:

var query = list.GroupBy(data => new{data.a, data.b, data.d})
    .Select(group => group.First())//just choose one from the group