日期:2014-05-17  浏览次数:20757 次

怎样根据集合中数据筛选表数据
比如有个字符串集合
List<string> list = new ...;

x表中y字段如果有值存在list中,取出x表数据
比较快速方法
请教 谢谢

------解决方案--------------------
string arr = string.Join(", ", list.Select(x => "'" + x + "'"));
var sql = "select * from x where y in (" + arr + ")";
------解决方案--------------------
List<string> list = new List<string>();
            list.AddRange(new string[] { "1", "2" });

            DataTable dt = new DataTable();
            dt.Columns.Add("X", typeof(int));
            dt.Columns.Add("Y", typeof(string));
            dt.Rows.Add(1, "1");
            dt.Rows.Add(2, "2");
            dt.Rows.Add(3, "3");

            var result = from p in list.AsEnumerable()
                         from q in dt.AsEnumerable()
                         where p == q.Field<string>("Y")
                         select new { X = q.Field<int>("X"), Y = q.Field<string>("Y") };
            result.ToList().ForEach(x => Console.WriteLine(x.ToString()));