Csharp/C#教程:如何通过多个T.attributes对List 进行排序?分享


如何通过多个T.attributes对List 进行排序?

假设我有一个歌曲列表。

Song { public string Name = ""; public int PlayOrder = 0; } 

现在我想首先按PlayOrder对它们进行排序,从零开始按名称按字母顺序排序。

因此,一组示例排序结果将是(Name,PlayOrder):

 /* Pachelbel's Canon, 0 A Happy Song, 4 Beethoven's 5th, 4 Some Other Song, 7 */ 

请参阅按字母顺序查看PlayOrder = 4的顺序? 这就是我想要的。

现在我只有一个字段排序:

 List final = new List(); ... final.Sort((x, y) => x.PlayOrder.CompareTo(y.PlayOrder)); return final; 

我怎样才能按名称进行排序,如上所示?

 return final.OrderBy(s => s.PlayOrder).ThenBy(s => s.Name); 

如果要继续使用sort方法,则需要使比较函数更智能:

 final.Sort((x, y) => { var ret = x.PlayOrder.CompareTo(y.PlayOrder); if (ret == 0) ret = x.Name.CompareTo(y.Name); return ret; }); 

如果您想使用LINQ,那么您可以使用K Ivanov发布的内容。

上述就是C#学习教程:如何通过多个T.attributes对List 进行排序?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/cdevelopment/956614.html

(0)
上一篇 2021年11月20日
下一篇 2021年11月20日

精彩推荐