包含两个值

本文关键字:包含两 | 更新日期: 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.
}