我有這樣有沒有一種漂亮的方式可以將IEnumerable分成兩組?
var inserts = viewtags.Where(vt => vt.TagID == null);
var updates = viewtags.Where(vt => vt.TagID != null);
一段代碼,但我不知道是否有更好的方法來一個IEnumerable分成2個互相排斥的羣體?
我有這樣有沒有一種漂亮的方式可以將IEnumerable分成兩組?
var inserts = viewtags.Where(vt => vt.TagID == null);
var updates = viewtags.Where(vt => vt.TagID != null);
一段代碼,但我不知道是否有更好的方法來一個IEnumerable分成2個互相排斥的羣體?
您可以使用Linq GroupBy。您可以使用下面的做到這一點:
var results = viewtags.GroupBy(vt => vt.TagID != null);
很顯然,我真的不知道這個類在這種情況下,你vt
項目。但是這基本上會返回一個你可以操作的IEnumerable<IGrouping<Bool, VTClass>>
。如果您想根據是否需要插入或更新來訪問項目,則更好的方法是致電ToLookup()。
var results = viewtags.ToLookup(vt => vt.TagID != null);
此時你可以做的,這使得它稍微容易消耗爲更高版本:
var inserts = results[false];
var updates = results[true];
'VAR組= viewtags.GroupBy(!VT => vt.TagID = NULL);' –
你的意思是GroupBy? –