我有List<String>
,有1000个名字。我想找出以字母“S”开头的名字数。
这样做的最佳选择是什么?
答案 0 :(得分:7)
如果Linq可用
using System.Linq;
list.Where(s=>s!=null && s.StartsWith("S")).Count();
如果Linq不可用。
int count=0;
foreach (string s in list) {
if (s!=null && s.StartsWith("S")) count++;
}
答案 1 :(得分:2)
使用linq使这个简单
var count = list.Where(x => x != null && x.StartsWith("S")).Count();
答案 2 :(得分:1)
如果您可以访问LINQ,例如
int count = myList.Count(name => name.StartsWith("S"));
否则,像是
int count = myList.FindAll(name => name.StartsWith("S")).Count;
(编辑:正如Bob Vale在答案中指出的,如果您的任何列表条目可能为空,则需要添加空检查,例如name => name != null && name.StartsWith("S")
。)
答案 3 :(得分:1)
int num = 0;
foreach (string aName in yourStringList)
{
if (aName.StartsWith("S"))
{
num++
}
和num将具有以“S”开头的名称数
答案 4 :(得分:0)
List<string> list = new List<string>();
...
int count = list.Count(c => c!= null && c.StartsWith("S"));