包含两个值
本文关键字:包含两 | 更新日期: 2023-09-27 18:21:28
我有一个List属性,它必须同时包含pivot1和pivot2。
如何使Contains与BOTH值一起工作?
List<string> properties = line.Split('|').ToList();
string pivot1 = "value1";
string pivot2 = "value2";
if(properties.Contains(pivot1) && properties.Contains(pivot2))
{
// do stuff.
}
除了编写扩展/助手方法外,您还可以使用LINQ将其缩短一点:
if (new[] { pivot1, pivot2 }.All(properties.Contains))
{
}
尽管我认为这本书可读性较差。
我个人喜欢维护一个Utility类来构建我自己有用的框架来赞美.NET
public static bool ContainsAll<T>(this IEnumerable<T> list, params T[] items)
{
foreach(var item in items)
{
if (!list.Contains(item))
return false;
}
return true;
}
然后你可以使用:
if(properties.ContainsAll(pivot1, pivot2))
{
}
您没有初始化属性或向其中添加任何内容。
List<string> properties = new List<string>();
properties.Add("value1");
properties.Add("value2");
string pivot1 = "value1";
string pivot2 = "value2";
if(properties.Contains(pivot1) && properties.Contains(pivot2))
{
// do stuff.
}