JF *_*ieu 2 c# sorting list compareto
我目前正在使用列表中包含的对象类型中的'CompareTo'方法对C#列表进行排序.我想通过他们的WBS(工作分解结构)按升序排序所有项目,我可以使用以下代码很好地管理这个:
public int CompareTo(DisplayItemsEntity other)
{
string[] instanceWbsArray = this.WBS.Split('.');
string[] otherWbsArray = other.WBS.Split('.');
int result = 0;
for (int i = 0; i < maxLenght; i++)
{
if (instanceWbsArray[i].Equals(otherWbsArray[i]))
{
continue;
}
else
{
result = Int32.Parse(instanceWbsArray[i]).CompareTo(Int32.Parse(otherWbsArray[i]));
break;
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
现在,在考虑第二个WBS之前,我希望能够按字母顺序排序考虑多个参数,如项目名称.我怎样才能做到这一点?
我不知道你的类的细节,所以我将提供一个使用字符串列表和LINQ的示例.OrderBy
将按字母顺序排序字符串,ThenBy
然后按照它们的长度排序.您可以轻松地根据需要调整此样本.
var list = new List<string>
{
"Foo",
"Bar",
"Foobar"
};
var sortedList = list.OrderBy(i => i).
ThenBy(i => i.Length).
ToList();
Run Code Online (Sandbox Code Playgroud)