查找字符串数组以逗号分隔的字符串列表

时间:2015-04-13 17:47:27

标签: c# arrays string

查找字符串数组以逗号分隔的字符串列表的最佳方法是什么?下面是我的示例,我一直在false

const string _select_records = ("show all records, show invalid records, show valid records" );

bool flag = _select_records.Split(',').Contains("show all records");

2 个答案:

答案 0 :(得分:2)

此行bool flag = _select_records.Split(',').Contains("show invalid records");返回false,因为Split返回的数组将返回三个元素,并且由于第二个和第三个元素在分隔符之前有空格,因此数组中的值将类似于:

"show all records" //no leading space
" show invalid records" // one leading space
" show valid records" // one leading space

现在,此检查.Contains("show invalid records");已应用于字符串数组,因此它是IEnumerable<T>.Contains,它将查找具有精确值的数组元素作为“显示无效记录”,不带领先空格。由于没有与精确值匹配的数组元素,因此返回false。

可以通过多种方式解决问题,最简单的方法是使用Trim移除尾随和前导空格,然后应用Contains,如:

bool flag = _select_records.Split(',').Select(s=> s.Trim())
                           .Contains("show invalid records");

答案 1 :(得分:0)

这对你有用......

var stringToCheck = "show all records";
bool flag = _select_records.Split(',').Any(stringToCheck.Contains))

你所拥有的也应该工作。