查找字符串数组以逗号分隔的字符串列表的最佳方法是什么?下面是我的示例,我一直在false
const string _select_records = ("show all records, show invalid records, show valid records" );
bool flag = _select_records.Split(',').Contains("show all records");
答案 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))
你所拥有的也应该工作。