簡體   English   中英

自定義排序 LINQ C#

[英]Custom sorting LINQ C#

我有對象列表。 我正在嘗試使用其中一個屬性對其進行排序。

我正在嘗試以下內容:

items.OrderBy(x => x.Name).ToList()

items 可以包含 Name 的值,如下所示:

case 1 - abc,xyz,byc,myu
case 2 - abc3,xur2,iuy7

如果任何值包含 int(數字),我想按降序對列表進行排序。 所以在情況 2 中,我想按降序排序。 在第 1 種情況下,排序將按升序排列。 問題是如何識別列表是否包含任何整數? 這樣我就可以決定順序了。

public class TestClass
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
}

您可以使用Anychar.IsDigit來確定是否有一個:

if(items.Any(x => x.Name.Any(char.IsDigit)))
{
    // descending  
    items = items.OrderByDescending(x => x.Name)).ToList()
}
else
{
    // ascending
    items = items.OrderBy(x => x.Name)).ToList()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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