我怎样才能在c#数据库选择中使用循环

时间:2014-05-27 16:16:30

标签: c# database

我的代码是这样的:

    dt1 = dt1
            .AsEnumerable()
            .Where(r=>!String.IsNullOrEmpty(r.Field<string>("Transaction_x0020_Type"))
                        &&(r.Field<string>("Transaction_x0020_Type").ToLower().Contains(YrStrList[0].ToLower())
                        ||r.Field<string>("Transaction_x0020_Type").ToLower().Contains(YrStrList[1].ToLower())
                        ||r.Field<string>("Transaction_x0020_Type").ToLower().Contains(YrStrList[2].ToLower())
                        ||r.Field<string>("Transaction_x0020_Type").ToLower().Contains(YrStrList[3].ToLower())))
            .AsDataView()
            .ToTable();

我希望可以将以下部分放在循环中:

     &&(r.Field<string>("Transaction_x0020_Type").ToLower().Contains(YrStrList[0].ToLower())
                        ||r.Field<string>("Transaction_x0020_Type").ToLower().Contains(YrStrList[1].ToLower())
                        ||r.Field<string>("Transaction_x0020_Type").ToLower().Contains(YrStrList[2].ToLower())
                        ||r.Field<string>("Transaction_x0020_Type").ToLower().Contains(YrStrList[3].ToLower())))

1 个答案:

答案 0 :(得分:1)

假设您正在检查YrStrList中的所有值,而不仅仅是前4个(可能超过4个):

&&(YrStrList.Any(y => r.Field<string>("Transaction_x0020_Type")
                       .ToLower()
                       .Contains(y.ToLower())))