[英]Order a list of tuples
我有一個這樣的元組列表:
List<Tuple<Material, Material>> materials
稍后,我將對其進行迭代。 但是,元組的Item2 可以為null 。
foreach(var material in materials)
{
// Do stuff
}
我想訂購“材料”列表,以便首先完成填充Item2(至少不為null)的元組。
我假設這就像
foreach(var material in materials.OrderBy(*something*))
{
// Do stuff
}
但是,我還沒有真正找到一種方法。
您可以排序,如果不為null,則為“ 0”;如果為null,則為“ 1”。
foreach(var material in materials.OrderBy(t=>t.Item2 == null ? 1 : 0))
這樣,空值將在末尾消失。 首先所有“ 0”(不為null),然后所有“ 1”(null)
如果您只想先使用item2!=null
,則可以執行以下操作:
var materialslist = materials.Where(x => x.Item2 != null)
.Concat(materials.Where(x => x.Item2 == null)).ToList();
foreach(var material in materialslist)
{
//Do Stuff
}
foreach(var material in materials.OrderByDescending(s => s.Item2 != null));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.