当前位置:  开发笔记 > 编程语言 > 正文

如何使用缺少元素的Linq进行排序?

如何解决《如何使用缺少元素的Linq进行排序?》经验,为你挑选了1个好方法。

通常在使用Linq时,我通常会使用Where或类似过滤掉空/空记录.但是,我需要在多个条件上订购一个列表,并按顺序保留列表中的所有项目.

以下内容仅.Dimension1.Count > 0适用于列表中的所有项目

var orderedList = mList.Elements
                       .OrderBy(x => x.Property1)
                       .ThenBy(x => x.Property2)
                       .ThenBy(x => x.Property3.Dimension1[0].Value2)
                       .ToList();

如果有任何元素,Dimension1.Count == 0那么我得到错误:

'指数超出范围.必须是非负数且小于集合的大小.

这是预期的,因为数组没有标注尺寸.

当列表包含有哪些项目时,有没有办法使这项工作.Dimension1.Count = 0

请注意,这Dimension1[0].Value2是double类型.



1> Yacoub Massa..:

你可以这样做:

var orderedList = mList.Elements.OrderBy(x => x.Property1)
.ThenBy(x => x.Property2)
.ThenBy(x => x.Property3.Dimension1.Count == 0
    ? -1
    : x.Property3.Dimension1[0].Value2)
.ToList();

我假设这Value2是一个整数.例如,如果它是一个字符串,您可以使用null而不是-1.

这个想法是当你Count为0 时使用特殊值.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有