使用多个条件对结构数组进行排序c#

时间:2016-01-09 15:19:34

标签: c# sorting

我有一个结构数组,需要首先按st排序,然后按优先级排序,然后按id排序。 这是我的结构:

 struct File {  
   public int priority, id, st;
 }

这是我的阵列:

 File[] Files = new File[10];

有一种简单的方法可以进行这种排序吗?

1 个答案:

答案 0 :(得分:1)

您可以使用ThenBy命名空间中的System.Linqvar result = Files.OrderBy(x => x.st) .ThenBy(x => x.priority) .ThenBy(x => x.id) .ToList(); // Or ToArray() 方法:

var result = (from file in Files
             orderby file.st, file.priority, file.id
             select file).ToList(); // Or ToArray()

您还可以使用查询语法进行此类Linq查询:

=IF(or(and(B1>43%, B1<57%, A1=2016),and(B1 >57%, A1=2016,istext(E1))), "ID",)

请记住,查询表达式在编译之前会被翻译成lambda表达式。