2010-06-30 126 views
0

我有一個包含名稱,位置和值的對象集合。我有一個需要比較數據的位置列表。我需要做的只是提取名稱和值與我列表中所有位置相同的記錄。查找對象集合中的數據,其中對象中的所有名稱都具有相同的值

因此,如果我的對象中沒有任何項目位置,我忽略所有這些項目。我只想要那些與我的位置列表相同的項目。

我該如何編寫一個linq語句來解決這個問題?甚至可以使用lambda表達式。我真的不想循環遍歷所有記錄多次查找常見記錄。

+0

您應該將'linq'標籤添加到此問題中。在C#3.5中還添加了LINQ,因此您應該用'c#'替換'c#3.0'標籤。不要挑剔,但爲了將來的參考;) – 2010-06-30 21:08:39

回答

0

如果我假設你有一個對象具有名稱,位置和值作爲屬性,並且你想從具有相同位置的集合中獲取對象。

假設你有下面的對象

public class MyObject 
{ 
    public string name{set;get;} 
    public string location{set;get;} 
    public string value{set;get} 
} 

,你有這些對象的像IEnumerable<MyObject> myObjects;

集,就可以通過這個集合搜索,以獲得與相同位置的對象:

IEnumerable<MyObject> results = myObjects.Where(mo => mo.location.Contains("targetLocation")); 

或者您可以說:

var results = from o in myObjects 
       where o.location.Contains("something") 
       select c; 
0

這得到所有的位置是在位置列表中的對象:

dataObjects.Where(o => locations.Any(l => l == o.Location)); 

如果您需要更復雜的比較,你應該張貼有關類的結構,所以我們可以給你一個更準確的答案。

相關問題