我有一份国家/地区名称
Afghanistan
Albania
Bahamas, The
Bahrain
Cambodia
Cameroon
.
.
.
我想要做的是根据第一个字母将此列表分成其他列表。
所以基本上我想要一个以a,b,c,......开头的国家列表
答案 0 :(得分:6)
所以,你有一组字符串。您可以使用LINQ对它们进行分组并将它们转换为字典。
首先,您需要根据第一个字母对其进行分组(在这种情况下,使用a
来A
和GroupBy(n => n[0])
以不同方式处理案例事项)n[0]
其中{{ 1}}获取字符串中的第一个字符。
其次,您需要将分组转换为可以使用索引器的内容。字典是完美的。使用ToDictionary(g => g.Key, g => g)
。
当你把它串在一起时,它看起来像是:
var dict = names.GroupBy(n => n[0]).ToDictionary(g => g.Key, g => g);
并允许您使用以下方式获取分组名称:
foreach(var n in dict['A'])
{
// Print out each country starting with 'A'
Console.WriteLine(n);
}
答案 1 :(得分:0)
你可以这样做:
var countriesWithStartingLetterA = countries.Where(x => x.StartsWith("A")).ToList();