0
我在這裏發現了很多linq帖子,按字段組合一個對象,但是我還沒有找到一種將衆多字段分組的對象。基於衆多領域的對象組列表
可以說我有類似如下的對象:
class Obj
{
public string field1 {get;set;}
public string field2 {get;set;}
public string field3 {get;set;}
}
然後我有這樣的對象的列表:
List<Obj> ol = new List<Obj>
Obj obj = new Obj();
obj.field1 = "a1";
obj.field2 = "a2";
obj.field3 = "a3";
ol.Add(obj);
obj.field1 = "a4";
obj.field2 = "a5";
obj.field3 = "a6";
ol.Add(obj);
obj.field1 = "a7";
obj.field2 = "a8";
obj.field3 = "a9";
ol.Add(obj);
obj.field1 = "a1";
obj.field2 = "a2";
obj.field3 = "a3";
ol.Add(obj);
所以現在有四個對象的列表。我想要的是按三個字段對列表進行分組。我知道如何將列表按1字段進行分組,但是在由多個字段進行分組時我沒有任何運氣。所以我期待的結果是三個列表,因爲字段1,2和3在兩個對象中是相同的。
要由一個領域我已經做了以下工作正常組:
var grouped = obj.GroupBy(u => u.field1);
我所尋找的是一樣的東西是無效的語法如下,但它是我試過的事情之一:
var grouped = obj.GroupBy(u => u.field1 && v => v.field2 && w => w.field3);
這個想法是在SQL同樣的事情,如果你是由多個領域,如分組:
select * from foo group by field1, field2, field3
預先感謝任何幫助
沒錯奏效除了我需要添加u.field3。謝謝 – Maxqueue
相應的編輯代碼以備將來參考。 – stybl
Duplicate:http://stackoverflow.com/questions/847066/group-by-multiple-columns – Mvarta