我有这样的字符串列表
“FirstName-Lastname”(用短划线分隔)
我需要按照名字和姓氏对此列表进行排序
这样做的最佳方法是什么。 我需要在不到1秒的时间内处理30000个字符串。
我被建议使用LINQ to Entities。
使用它的最佳方式是什么?
非常感谢任何帮助
编辑:为避免混淆,输入为List<string>
答案 0 :(得分:3)
您可以使用LINQ(允许您排序而不修改List中的数据):
names.OrderBy(s => s.Split('-')[0]).ThenBy(s => s.Split('-')[1]);
答案 1 :(得分:2)
您也可以使用代理
names.Sort(
delegate(string str1, string str2)
{
return str1.CompareTo(str2);
}
);
答案 2 :(得分:0)
在26
个子数组中拆分字符串数组,每个字母对应一个字母。然后为每个子阵列重复该过程。
此方法对排序字符串非常有效。它被称为bucket sort。