Linq c#按字母分组

Linq c#按字母分组,linq,c#-4.0,linq-to-objects,Linq,C# 4.0,Linq To Objects,我需要按姓氏和首字母显示作者组列表 e.g. A Kim, Ami Dim, Amaiar jin, Amairaz B Bin, Bom Kin, Bomo C Cin, Ci Con, Co .... 有人能帮我解决上述问题的最佳方法是什么吗?如果您想分组,请使用,我假设您想对输出进行排序(),更改GroupBy表达式以符合您的确切要求: List<String> names = new List<String>{"Bill

我需要按姓氏和首字母显示作者组列表

e.g.
A
  Kim, Ami
  Dim, Amaiar
  jin, Amairaz

B
   Bin, Bom
   Kin, Bomo

C
   Cin, Ci
   Con, Co

....

有人能帮我解决上述问题的最佳方法是什么吗?

如果您想分组,请使用,我假设您想对输出进行排序(),更改
GroupBy
表达式以符合您的确切要求:

List<String> names = new List<String>{"Bill", "Mark", "Steve", "Amnon", "Benny"};
foreach(var g in names.GroupBy(name => name.First()).OrderBy(g => g.Key)){
    Console.WriteLine(g.Key);
    g.OrderBy(name => name).ToList().ForEach(Console.WriteLine);
}
您可以在Linq对象上使用扩展方法来获得所需的结果

 List<string> firstNames = new List<string>(){ "Ami", "Amaiar","Amiraz","Bom","Bomo","Ci","Co" };

 var groups = firstNames.GroupBy(x=>x[0]);

 foreach (var element in groups)
 {
    Console.WriteLine("{0}", element.Key);

    foreach (var word in element)
       Console.WriteLine("    {0}", word);
 }
List firstNames=newlist(){“Ami”、“Amaiar”、“Amiraz”、“Bom”、“Bomo”、“Ci”、“Co”};
var groups=firstNames.GroupBy(x=>x[0]);
foreach(组中的var元素)
{
WriteLine(“{0}”,element.Key);
foreach(元素中的变量字)
Console.WriteLine(“{0}”,word);
}

输入是什么?你试过什么?
 List<string> firstNames = new List<string>(){ "Ami", "Amaiar","Amiraz","Bom","Bomo","Ci","Co" };

 var groups = firstNames.GroupBy(x=>x[0]);

 foreach (var element in groups)
 {
    Console.WriteLine("{0}", element.Key);

    foreach (var word in element)
       Console.WriteLine("    {0}", word);
 }