订购元组列表

时间:2017-06-14 10:46:36

标签: c# list tuples

我有一个像这样的元组列表:

List<Tuple<Material, Material>> materials

稍后我会迭代它。但是,元组 Item2 可能 null

foreach(var material in materials)
{
    // Do stuff
}

我想订购材料清单,以便填充Item2的元组(至少不为空)首先完成。

我假设它是

之类的东西
foreach(var material in materials.OrderBy(*something*))
{
    // Do stuff
}

然而,我还没有真正找到办法这样做。

3 个答案:

答案 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));