如何在 C# 中对列表列表进行排序?

现在住

我有一个列表列表,即IList<IList<Result>>,我需要按属性排序DisplayOrder

IList<IList<Result>> results = new List<IList<Result>>();

results = validationResults.OrderBy(x => x.OrderBy(y => y.DisplayOrder)).ToList();

validationResults 价值:

[
    [
        {
            "fieldName": "AccountName",
            "displayOrder": 5
        }
    ],
    [
        {
            "fieldName": "AccountNumber",
            "displayOrder": 6
        }
    ],
    [
        {
            "fieldName": "BankAddress",
            "displayOrder": 4
        }
    ]
]

期望值:

[
    [
        {
            "fieldName": "BankAddress",
            "displayOrder": 4
        }
    ],
    [
        {
            "fieldName": "AccountName",
            "displayOrder": 5
        }
    ],
    [
        {
            "fieldName": "AccountNumber",
            "displayOrder": 6
        }
    ] 
]

我试过了,但它给出了以下例外。

System.InvalidOperationException:无法比较数组中的两个元素。---> System.ArgumentException:至少一个对象必须实现 IComparable。在 System.Collections.Comparer.Compare(Object a, Object b) 在 System.Collections.Generic.ObjectComparer 1.Compare(T x, T y) at System.Linq.EnumerableSorter2.CompareAnyKeys(Int32 index1, Int32 index2) 在 System.Collections.Generic.ComparisonComparer 1.Compare(T x, T y) at System.Collections.Generic.ArraySortHelper1.InsertionSort(T[] keys, Int32 lo, Int32 hi, 比较1 comparer) at System.Collections.Generic.ArraySortHelper1.IntroSort(T[] keys, Int32 lo, Int32 hi, Int32 depthLimit,比较1 comparer) at System.Collections.Generic.GenericArraySortHelper1.Sort(T[] keys, Int32 index, Int32 length, IComparer 1 comparer) --- End of inner exception stack trace --- at System.Collections.Generic.GenericArraySortHelper1.Sort(T[] keys) , Int32 索引, Int32 长度, IComparer 1 comparer) at System.Array.Sort[T](T[] array, Int32 index, Int32 length, IComparer1 比较器) 在 System.Linq.EnumerableSorter 2.QuickSort(Int32[] keys, Int32 lo, Int32 hi) at System.Linq.EnumerableSorter1.Sort(TElement[] 元素, Int32 count) 在 System.Linq.OrderedEnumerable1.ToList() at System.Linq.Enumerable.ToList[TSource](IEnumerable1 源)在 Api.Controllers.ValidationController.ValidateFields(ValidateFieldsRequest validateFieldsRequest) 在 J:\Api\ValidationApi\ValidationApi\Controllers\ValidationController.cs:line 191

注意:我使用的是 .net core 3.1

编辑:我添加了等效的 JSON 只是为了可读性,以便其他人可以轻松理解和调试问题。是的,Result类有一个属性DisplayOrder我想对外部列表进行排序。并且IList<Result>始终只有一件。

尼尔

展平列表,排序,然后投影回列表列表:

results = validationResults
    .SelectMany(x=>x) // Flatten
    .OrderBy(x=>x.DisplayOrder) // sort
    .Select(x=>new List<Result>{x}); // Project to list of lists

(我还没有检查过这个编译,但希望你能明白)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何排序在Java中的多个列表列表

如何根据子列表的长度对列表列表进行排序

如何在Java中对列表列表进行排序?

如何在Flutter中对列表进行排序

如何在C#中对动态列表进行排序

如何在R中对列表列表进行排序?

如何在链接列表[(a,b),(b,c),(c,d)]中的开始和结束值时对元组进行排序?

如何在Python中对列表列表进行分组?

在C#中,如何按尾数对双打列表进行排序?

如何进行为单个列表构建的合并排序,而是对“列表列表”进行排序?

如何在过滤出某些值的同时对列表列表进行排序?

如何在列表列表中对向量进行子集

如何使用sql查询对列表列表进行排序?

如何在r中按名称对列表列表进行排序?

如何在C#中对列表列表进行分组并将其合并为单个列表而不重复?

如何对列表列表进行排序并删除空列表?

如何对包含用户定义对象的列表列表进行排序

如何在Python的列表列表中对元素进行分组?

如何在C#中显示和排序列表?

如何在字典中对列表进行排序

如何在C中按字母顺序对链接列表进行排序

如何在c#中对分组列表项进行排序

如何在 C# 中以另一个排序列表为基础对 IList 进行排序?

如何根据内部列表的长度对列表列表进行排序?

如何在 C# 中按距离(以英里为单位)对给定纬度/经度的纬度/经度列表进行排序?

如何在 Python 中对列表对象进行排序,类似于 C 中的结构

如何在 C# 上对列表进行排序?

如何根据列表中的相同设置值对列表列表进行排序?

如何在不改变python中元素位置的情况下对列表列表中的元素进行排序?