代码之家  ›  专栏  ›  技术社区  ›  MicMit

在.NET 3.5列表中搜索,该列表类似于中的SQL列(value1,value2,…,valuen)

  •  0
  • MicMit  · 技术社区  · 16 年前

    我确实有 List<ColumnDiff> columnDiffList

    属于

      public class ColumnDiff
        {
            public string columnName;
            public string leftValue;
            public string rightValue;
        }
    

    我需要确定是否有columnname为“a”、“b”、“c”的元素 提取子列表并不重要。

    用SQL术语
    列名称在(“a”、“b”、“c”)中

    如何用LINQ编码

    3 回复  |  直到 16 年前
        1
  •  1
  •   slugster Joey Cai    16 年前

    有几种方法,下面是一个简单的例子:

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<ColumnDiff> columnDiffs = new List<ColumnDiff>();
                columnDiffs.AddRange(new[]  {
                                                 new ColumnDiff(){columnName="Aa"}
                                                ,new ColumnDiff(){columnName="A"}
                                                ,new ColumnDiff(){columnName="B"}
                                                ,new ColumnDiff(){columnName="Bb"}
                                                ,new ColumnDiff(){columnName="C"}
                                                ,new ColumnDiff(){columnName="Cc"}
                                            });
    
                bool hasItems = columnDiffs.Exists(x => x.columnName == "A" || x.columnName == "B" || x.columnName == "C");
                hasItems = columnDiffs.Any(x => x.columnName == "A" || x.columnName == "B" || x.columnName == "C");
                hasItems = columnDiffs.FirstOrDefault(x => x.columnName == "A" || x.columnName == "B" || x.columnName == "C") != null;
    
                Console.ReadKey();
            }
        }
    
        public class ColumnDiff
        {
            public string columnName;
            public string leftValue;
            public string rightValue;
        }
    }
    
        2
  •  2
  •   Padel    16 年前

    也许这就是你需要的:

    var searchList = new[] {"A", "B", "C"};
    var result = columnDiffList.Where(i => searchList.Any(j => j == i.columnName));
    

    因此,首先定义要搜索的内容的列表,然后使用它对列表(columndiflist)进行搜索。

        3
  •  0
  •   Denis Palnitsky    16 年前
    var res = from c in columnDiffList where c.columnName == "A" || c.columnName == "B" select c;