我有一个存储过程,它根据复杂查询返回记录集(结果集A),并且记录按特定顺序排列。我有另一个查询从另一个表(结果集B)返回ID值。
我想做一些类似于“从结果集A中获取记录(结果集B中存在id)”的内容。
我需要在代码隐藏中执行此操作。任何想法如何去做?
答案 0 :(得分:1)
您可以使用此扩展方法 - 基于yield和Linq Contains operator
public static IEnumerable<string> Select(this DataReader reader, int index)
{
while (reader.Read())
{
yield return reader[index].ToString();
}
}
Nota:你有两个记录集reader1和reader2,选择扩展方法获取项目IEnumerable列表。
var list1 = reader1.Select(0); //Search on first column;
var list2 = reader2.Select(0);
//Get list items of values (index 0) of list2, who exist in list1.
var result = from item on list2.Select(0)
where list1.Contains(item)
select item;