根据字符串的首字母,将字符串列表拆分为一个新列表

本文关键字:列表 字符串 一个 新列表 拆分 | 更新日期: 2023-09-27 18:11:23

我有一个国家名称列表

Afghanistan
Albania
Bahamas, The
Bahrain
Cambodia
Cameroon
.
.
.

我要做的是根据首字母将这个列表分成其他列表。

我想要一个以a b c开头的国家列表......

根据字符串的首字母,将字符串列表拆分为一个新列表

那么,你有一个字符串集合。您可以使用LINQ对它们进行分组并将它们转换为字典。

首先,您需要根据第一个字母对它们进行分组(在这种情况下,大小写很重要,因此aA将被区别对待),使用GroupBy(n => n[0]),其中n[0]获得字符串中的第一个字符。

其次,您需要将分组转换为可以使用索引器的内容。一本字典就很好了。使用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);
}

你可以这样做:

var countriesWithStartingLetterA = countries.Where(x => x.StartsWith("A")).ToList();