2013-11-26 131 views
-1

在silverlight/c#中編程。從另一個列表中選擇列表項目

我有2所列出樹立正確的現在:

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運營商的新手。

謝謝!

回答

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>(); 
+0

抱歉是它的新列表,編輯複製/粘貼時出錯。合併功能 - 它使用哪個引用?我試過system.linq但是沒有 –

+0

@ user2799598,它是'using System.Linq'; – Habib

0

可以使用Union擴展方法。

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

這將返回一個IEnumerable的是其中merge集合包含從quote_id收集的物品。

我不會推薦使用Contains方法,因爲這將對其他集合中的每個項目執行順序搜索。這將產生巨大的性能影響。

相關問題