C# 如何使用列表按长度对字符串排序<;字符串>;。分类
我想按字符串的长度对列表进行排序C# 如何使用列表按长度对字符串排序<;字符串>;。分类,c#,.net,sorting,C#,.net,Sorting,我想按字符串的长度对列表进行排序 var weasleys = new List<string>{"Bill", "Charlie", "Percy", "Fred", "George", "Ron", "Ginny"}; 但是我想知道怎么用它。怎么做?有一个代理。这样,您就可以对相应的长度值使用CompareTo方法: weasleys.Sort((x, y) => x.Length.CompareTo(y.Length)); 请注意,与LINQOrderBy方法不同,S
var weasleys = new List<string>{"Bill", "Charlie", "Percy", "Fred", "George", "Ron", "Ginny"};
但是我想知道怎么用它。怎么做?有一个代理。这样,您就可以对相应的长度
值使用CompareTo
方法:
weasleys.Sort((x, y) => x.Length.CompareTo(y.Length));
请注意,与LINQOrderBy
方法不同,Sort
将更改您的Weasley
列表(如果您有意这样做)。有一个代理。这样,您就可以对相应的长度
值使用CompareTo
方法:
weasleys.Sort((x, y) => x.Length.CompareTo(y.Length));
请注意,与LINQOrderBy
方法不同,Sort
将更改您的weasley
列表(如果您有意的话)。这应该可以做到
var weasleys = new List<string>{"Bill", "Charlie", "Percy", "Fred", "George", "Ron", "Ginny"};
var t = weasleys.OrderBy(x => x.Length).ToList<string>();
var weasley=新列表{“比尔”、“查理”、“珀西”、“弗雷德”、“乔治”、“罗恩”、“金妮”};
var t=weasley.OrderBy(x=>x.Length.ToList();
这应该可以
var weasleys = new List<string>{"Bill", "Charlie", "Percy", "Fred", "George", "Ron", "Ginny"};
var t = weasleys.OrderBy(x => x.Length).ToList<string>();
var weasley=新列表{“比尔”、“查理”、“珀西”、“弗雷德”、“乔治”、“罗恩”、“金妮”};
var t=weasley.OrderBy(x=>x.Length.ToList();
您可以使用数组列表执行此操作
public class SortStringLength : IComparer
{
public int Compare(Object s1, Object s2)
{
if (s1.ToString().Length == s2.ToString().Length)
return String.CompareOrdinal(s1.ToString(), s2.ToString());
if (s1.ToString().Length > s2.ToString().Length)
return 1;
return -1;
}
}
然后,使用IComparer
static void Main(string[] args)
{
var weasleys = new ArrayList { "Bill", "Charlie", "Percy",
"Fred", "George", "Ron", "Ginny" };
var sortLength = new SortStringLength();
weasleys.Sort(sortLength);
foreach (var weasley in weasleys)
{
Console.WriteLine(weasley);
}
Console.ReadLine();
}
与列表
public class SortStringLength : IComparer<string>
{
public int Compare(string x, string y)
{
if (x.Length == y.Length)
return String.CompareOrdinal(x, y);
if (x.Length > y.Length)
return 1;
return -1;
}
}
公共类排序:IComparer
{
公共整数比较(字符串x、字符串y)
{
如果(x.Length==y.Length)
返回字符串.CompareOrdinal(x,y);
如果(x.长度>y.长度)
返回1;
返回-1;
}
}
和用法
static void Main(string[] args)
{
var weasleys = new List<string> { "Bill", "Charlie", "Percy",
"Fred", "George", "Ron", "Ginny" };
var sortLength = new SortStringLength();
weasleys.Sort(sortLength);
foreach (var weasley in weasleys)
{
Console.WriteLine(weasley);
}
Console.ReadLine();
}
static void Main(字符串[]args)
{
var Weasley=新列表{“比尔”、“查理”、“珀西”,
“弗雷德”、“乔治”、“罗恩”、“金妮”};
var sortLength=新的SortStringLength();
韦斯莱.排序(sortLength);
foreach(韦斯莱的var weasley)
{
控制台。WriteLine(韦斯莱);
}
Console.ReadLine();
}
您可以使用数组列表执行此操作
public class SortStringLength : IComparer
{
public int Compare(Object s1, Object s2)
{
if (s1.ToString().Length == s2.ToString().Length)
return String.CompareOrdinal(s1.ToString(), s2.ToString());
if (s1.ToString().Length > s2.ToString().Length)
return 1;
return -1;
}
}
然后,使用IComparer
static void Main(string[] args)
{
var weasleys = new ArrayList { "Bill", "Charlie", "Percy",
"Fred", "George", "Ron", "Ginny" };
var sortLength = new SortStringLength();
weasleys.Sort(sortLength);
foreach (var weasley in weasleys)
{
Console.WriteLine(weasley);
}
Console.ReadLine();
}
与列表
public class SortStringLength : IComparer<string>
{
public int Compare(string x, string y)
{
if (x.Length == y.Length)
return String.CompareOrdinal(x, y);
if (x.Length > y.Length)
return 1;
return -1;
}
}
公共类排序:IComparer
{
公共整数比较(字符串x、字符串y)
{
如果(x.Length==y.Length)
返回字符串.CompareOrdinal(x,y);
如果(x.长度>y.长度)
返回1;
返回-1;
}
}
和用法
static void Main(string[] args)
{
var weasleys = new List<string> { "Bill", "Charlie", "Percy",
"Fred", "George", "Ron", "Ginny" };
var sortLength = new SortStringLength();
weasleys.Sort(sortLength);
foreach (var weasley in weasleys)
{
Console.WriteLine(weasley);
}
Console.ReadLine();
}
static void Main(字符串[]args)
{
var Weasley=新列表{“比尔”、“查理”、“珀西”,
“弗雷德”、“乔治”、“罗恩”、“金妮”};
var sortLength=新的SortStringLength();
韦斯莱.排序(sortLength);
foreach(韦斯莱的var weasley)
{
控制台。WriteLine(韦斯莱);
}
Console.ReadLine();
}
为什么不能像以前那样使用OrderBy?必须对t
类使用自定义比较器。为什么不能像以前那样使用OrderBy?必须对t
类使用自定义比较器。