我有一個包含名稱,位置和值的對象集合。我有一個需要比較數據的位置列表。我需要做的只是提取名稱和值與我列表中所有位置相同的記錄。查找對象集合中的數據,其中對象中的所有名稱都具有相同的值
因此,如果我的對象中沒有任何項目位置,我忽略所有這些項目。我只想要那些與我的位置列表相同的項目。
我該如何編寫一個linq語句來解決這個問題?甚至可以使用lambda表達式。我真的不想循環遍歷所有記錄多次查找常見記錄。
我有一個包含名稱,位置和值的對象集合。我有一個需要比較數據的位置列表。我需要做的只是提取名稱和值與我列表中所有位置相同的記錄。查找對象集合中的數據,其中對象中的所有名稱都具有相同的值
因此,如果我的對象中沒有任何項目位置,我忽略所有這些項目。我只想要那些與我的位置列表相同的項目。
我該如何編寫一個linq語句來解決這個問題?甚至可以使用lambda表達式。我真的不想循環遍歷所有記錄多次查找常見記錄。
如果我假設你有一個對象具有名稱,位置和值作爲屬性,並且你想從具有相同位置的集合中獲取對象。
假設你有下面的對象
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;
這得到所有的位置是在位置列表中的對象:
dataObjects.Where(o => locations.Any(l => l == o.Location));
如果您需要更復雜的比較,你應該張貼有關類的結構,所以我們可以給你一個更準確的答案。
您應該將'linq'標籤添加到此問題中。在C#3.5中還添加了LINQ,因此您應該用'c#'替換'c#3.0'標籤。不要挑剔,但爲了將來的參考;) – 2010-06-30 21:08:39