我有一个像这样的元组列表:
List<Tuple<Material, Material>> materials
稍后我会迭代它。但是,元组的 Item2 可能 null 。
foreach(var material in materials)
{
// Do stuff
}
我想订购材料清单,以便填充Item2的元组(至少不为空)首先完成。
我假设它是
之类的东西foreach(var material in materials.OrderBy(*something*))
{
// Do stuff
}
然而,我还没有真正找到办法这样做。
答案 0 :(得分:5)
如果不为空,您可以订购并给出值“0”,如果为空,则为“1”。
foreach(var material in materials.OrderBy(t=>t.Item2 == null ? 1 : 0))
这样,null值就会结束。首先是“0”(非空),然后是“1”(空值)
答案 1 :(得分:1)
如果您只想要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
}
,那么您可以这样做:
{{1}}
答案 2 :(得分:1)
foreach(var material in materials.OrderByDescending(s => s.Item2 != null));