簡體   English   中英

訂購元組列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM