用C#字符串处理null包含在循环中
本文关键字:循环 包含 null 字符串 处理 | 更新日期: 2023-09-27 18:26:54
我有要获取的数据
NullReferenceException : Object reference not set to an instance of an object
我知道这与故意在列表中创建null的尝试有关。我正在使用linqpad来尝试和模仿我的代码
List<string> list = new List<string>();
list.Add(null);
list.Add("scorp''jack");
list.Add("you");
var x = "jack";
var admin = 0;
foreach (var y in list) // Loop through List with foreach.
{
//Console.WriteLine(prime);
if(y.Contains(x))
{
admin = 1;
}
}
Console.WriteLine(admin);
一旦它在上运行
if(y.Contains(x))
那么它就无法处理null,我想知道处理它的优雅方式是什么?
List<string> list = new List<string>();
list.Add(null);
list.Add("scorp''jack");
list.Add("you");
var x = "jack";
var admin = 0;
// Add the Where extension method to filter out null values.
foreach (var y in list.Where(xx => xx != null)) // Loop through List with foreach.
{
//Console.WriteLine(prime);
if(y.Contains(x))
{
admin = 1;
}
}
Console.WriteLine(admin);
相反,您可以不使用循环,将if
更改为:
if(y != null && y.Contains(x))
您必须将null条件添加到if语句中:
if( y != null && y.Contains(x) ) {
// ...
}