2014-03-06 66 views
0

我有一个包含5个字段的类型列表。从这个列表中,我希望检索值,它将IssueType & ID分组在一起。因此,在下表中,问题类型ABC & Id = 2仅在我的新列表中出现一次。我该怎么做呢?列表分组在多个字段上

我还应该指出IssueType是一个枚举。不知道这是否有任何区别

IssueType Id 
ABC   1 
ABC   2 
ABC   2 
ABC   3 
XZY   4 
XYZ   1 

我试过在LINQ中使用groupby。

List<IssueLog> uniqueErrorLog = ErrorLog.GroupBy(err => err.IssueType, err => err.Id).Select(err => err).ToList(); 

更新

好了,所以我曾经试图下面的一行。

var uniqueErrorLog = ErrorLog.GroupBy(iss => new { iss.IssueType, iss.Id }); 

然后我检查输出和分组似乎没有区别。回到我的表格示例,我仍然可以看到当我只需要一个ID = 2时输出两个ABC。

foreach (var issueType in uniqueErrorLog) 
      { 
       foreach(var issue in issueType) 
        Console.WriteLine(issue.IssueType + "," + issue.Id);      
      } 
+0

http://stackoverflow.com/questions/10960953/splitting-linq-list-by-grouping –

+0

@克里斯请参阅编辑职位是我迄今为止尝试过。 – mHelpMe

+1

请不要包含关于问题标题中使用的语言的信息,除非在没有它的情况下没有意义。标签用于此目的。 –

回答

-1
myList.GroupBy(e => string.Format("{0}_{1}", e.IssueType, e.Id))