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

如何根据List <string>字段数对List <List <string >>进行排序?

如何解决《如何根据List<string>字段数对List<List<string>>进行排序?》经验,为你挑选了1个好方法。

如何根据字段数对List >进行排序?

列表得到了结构

a|b|c|d|eeee|rere|ewew|
ewqewq|ewew|
ewew|ewewewewew|

按排序我想根据块数(asc/desc)来做

编辑

> is "items"我访问由项每个列表[0]的每

这些项[xx]是一个列表,这意味着我希望它们对数组进行排序

    a|b|c|d|eeee|rere|ewew|
    a|b|c|d|eeee|rere
    a|b|c|d|eeee

tvanfosson.. 9

如果您不需要"就地"排序,可以使用LINQ为您提供一个新的排序列表.

var sorted = oldList.OrderBy( l => l.Count );

否则,您需要编写自己的Comparer,它接受两个列表并按其大小返回排序.

public class CountComparer : IComparer>
{
    #region IComparer> Members

    public int Compare( List x, List y )
    {
        return x.Count.CompareTo( y.Count );
    }

    #endregion
}



oldList.Sort( new CountComparer() );

或者,正如@Josh指出的那样,你可以用lambda表达式做到这一点.

oldList.Sort( (a,b) => a.Count.CompareTo( b.Count ) )

如果比较相对简单或使用一次,IMO后者可以很好地工作,但实际的类可能更好,因为比较变得更复杂或者你需要在多个地方重复它.



1> tvanfosson..:

如果您不需要"就地"排序,可以使用LINQ为您提供一个新的排序列表.

var sorted = oldList.OrderBy( l => l.Count );

否则,您需要编写自己的Comparer,它接受两个列表并按其大小返回排序.

public class CountComparer : IComparer>
{
    #region IComparer> Members

    public int Compare( List x, List y )
    {
        return x.Count.CompareTo( y.Count );
    }

    #endregion
}



oldList.Sort( new CountComparer() );

或者,正如@Josh指出的那样,你可以用lambda表达式做到这一点.

oldList.Sort( (a,b) => a.Count.CompareTo( b.Count ) )

如果比较相对简单或使用一次,IMO后者可以很好地工作,但实际的类可能更好,因为比较变得更复杂或者你需要在多个地方重复它.

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