LINQ 打印出语法而不是结果
LINQ prints out sytax instead of result
练习 LINQ 并 运行 陷入新手错误。
static void Main(string[] args)
{
List<string> Customers = new List<string>();
Customers.Add("Faizan");
Customers.Add("Ali");
Customers.Add("Fazeel");
Customers.Add("Salim");
Customers.Add("Mueen");
Customers.Add("Haleem");
Customers.Add("Mazin");
Console.WriteLine(Customers.OrderBy(s => s.Length));
Console.ReadKey();
}
我 运行 这个并在 CMD window:
中得到这个结果
System.Linq.OrderedEnumerable`2[System.String,System.Int32]
如何让它按长度打印列表?
简单的解决方案:
static void Main(string[] args)
{
List<string> Customers = new List<string>();
Customers.Add("Faizan");
Customers.Add("Ali");
Customers.Add("Fazeel");
Customers.Add("Salim");
Customers.Add("Mueen");
Customers.Add("Haleem");
Customers.Add("Mazin");
foreach(var customer in Customers.OrderBy(s => s.Length))
{
Console.WriteLine(customer);
}
Console.ReadKey();
}
方法 OrderBy
获取类型 IEnumerable<T>
的对象并将其转换为不同的 IEnumerable<T>
。
如果您想对每个项目进行操作,您仍然需要遍历每个项目。
尝试使用foreach循环显示所有数据。
static void Main(string[] args)
{
List<string> Customers = new List<string>();
Customers.Add("Faizan");
Customers.Add("Ali");
Customers.Add("Fazeel");
Customers.Add("Salim");
Customers.Add("Mueen");
Customers.Add("Haleem");
Customers.Add("Mazin");
var abc = Customers.OrderBy(s => s.Length).ToList();
foreach (var i in abc)
{
Console.WriteLine(i);
}
Console.ReadKey();
}
foreach(var items in Customers.OrderBy(s => s.Length))
{
Console.WriteLine(items);
}
foreach 循环中的 Orderby 并打印出项目。
其他可能的解决方案是使用 String.Join
而不是 Foreach
循环:
List<string> Customers = new List<string>();
Customers.Add("Faizan");
Customers.Add("Ali");
Customers.Add("Fazeel");
Customers.Add("Salim");
Customers.Add("Mueen");
Customers.Add("Haleem");
Customers.Add("Mazin");
Console.WriteLine(String.Join(Environment.NewLine, Customers.OrderBy(s => s.Length)));
Console.ReadKey();
练习 LINQ 并 运行 陷入新手错误。
static void Main(string[] args)
{
List<string> Customers = new List<string>();
Customers.Add("Faizan");
Customers.Add("Ali");
Customers.Add("Fazeel");
Customers.Add("Salim");
Customers.Add("Mueen");
Customers.Add("Haleem");
Customers.Add("Mazin");
Console.WriteLine(Customers.OrderBy(s => s.Length));
Console.ReadKey();
}
我 运行 这个并在 CMD window:
中得到这个结果System.Linq.OrderedEnumerable`2[System.String,System.Int32]
如何让它按长度打印列表?
简单的解决方案:
static void Main(string[] args)
{
List<string> Customers = new List<string>();
Customers.Add("Faizan");
Customers.Add("Ali");
Customers.Add("Fazeel");
Customers.Add("Salim");
Customers.Add("Mueen");
Customers.Add("Haleem");
Customers.Add("Mazin");
foreach(var customer in Customers.OrderBy(s => s.Length))
{
Console.WriteLine(customer);
}
Console.ReadKey();
}
方法 OrderBy
获取类型 IEnumerable<T>
的对象并将其转换为不同的 IEnumerable<T>
。
如果您想对每个项目进行操作,您仍然需要遍历每个项目。
尝试使用foreach循环显示所有数据。
static void Main(string[] args)
{
List<string> Customers = new List<string>();
Customers.Add("Faizan");
Customers.Add("Ali");
Customers.Add("Fazeel");
Customers.Add("Salim");
Customers.Add("Mueen");
Customers.Add("Haleem");
Customers.Add("Mazin");
var abc = Customers.OrderBy(s => s.Length).ToList();
foreach (var i in abc)
{
Console.WriteLine(i);
}
Console.ReadKey();
}
foreach(var items in Customers.OrderBy(s => s.Length))
{
Console.WriteLine(items);
}
foreach 循环中的 Orderby 并打印出项目。
其他可能的解决方案是使用 String.Join
而不是 Foreach
循环:
List<string> Customers = new List<string>();
Customers.Add("Faizan");
Customers.Add("Ali");
Customers.Add("Fazeel");
Customers.Add("Salim");
Customers.Add("Mueen");
Customers.Add("Haleem");
Customers.Add("Mazin");
Console.WriteLine(String.Join(Environment.NewLine, Customers.OrderBy(s => s.Length)));
Console.ReadKey();