从联合中选择列表项与另一个列表

时间:2013-11-26 16:39:48

标签: c# linq silverlight

用silverlight / c#编程。

我现在有两个列表设置:

list<string> quote_id = new List<int>();
List<getdata> merge = new List<getdata>();

public class getdata    
{
    public string month { get; set; }
    public string event_action_cd { get; set; }
    public string quote_id { get; set; }
}

我真正想要的是返回一个包含两个列表中出现的所有quote_id的列表 (用sql术语:select * from quote_id,merge where quote_id.quote_id = merge.quote_id)

我该怎么做?我知道Linq可能对我很有帮助,但我是Linq运营商的新手。

谢谢!

2 个答案:

答案 0 :(得分:0)

我相信您正在寻找Select * From merge where quote_id in ("","")...

var query = merge.Where(r=> quote_id.Contains(r.quote_id));

如果您需要列表,则可以将ToList附加到查询中。

另外,我相信您的quote_id定义为:

List<string> quote_id = new List<string>();

答案 1 :(得分:0)

您可以使用Union扩展程序。

var query = quote_id.Union(merge.Select(data=>data.quote_id));

这将返回一个IEnumerable,其中merge集合包含quote_id集合中的项目。

我不建议使用Contains方法,因为这会对其他集合中的每个项目进行顺序搜索。这将产生巨大的性能影响。