2015-07-21 73 views
-1

說我有一個對象:檢查一個項目的屬性的值從列表中匹配任何

class Foo 
{ 
public string Comment { get; set; } 
public int someVal { get; set; } 
} 

然後我讓他們的list

我現在希望能夠將Comment屬性與字符串列表進行匹配,並創建一個新列表,其中所有元素的Comment包含其他列表中的任何字符串。什麼是最簡單的方法來做到這一點?

+0

請再具體些。你有一個主要的foo對象嗎?或字符串評論? – Kram

+0

你是指什麼主要foo對象?我有一個'List ',一個列表'List ',我想用'Comment'測試列表中的每個項目,然後創建一個新列表,如果匹配。 – MKII

+0

您應該實現[IComparable](https://msdn.microsoft.com/en-us/library/system.icomparable(v = vs.110).aspx) – WiiMaxx

回答

1

假設你有這樣的事情:

var searchStrings = new List<string>(); 
var foos = new List<Foo>(); 

這應該做的工作:

var filteredFoos = foos.Where(f => searchStrings.Any(s => f.Comment.IndexOf(s) >= 0)); 
1

也許你想試試這個:

List<Foo> resultingFoos = listOfStrings.Join(listOfFoos, str => str, foo => foo.Comment, (str, foo) => foo).ToList(); 
+0

這也適用。 – MKII

+0

根據您使用的列表的大小,它會更快。 – ar53nic

相關問題