我有一個簡單的lambda表達式即是這樣的:多凡LAMBDA條款表達式
x=> x.Lists.Include(l => l.Title).Where(l=>l.Title != String.Empty)
現在,如果我想補充一個where子句來表達,比如,l.InternalName != String.Empty
那麼會是什麼表情是?
我有一個簡單的lambda表達式即是這樣的:多凡LAMBDA條款表達式
x=> x.Lists.Include(l => l.Title).Where(l=>l.Title != String.Empty)
現在,如果我想補充一個where子句來表達,比如,l.InternalName != String.Empty
那麼會是什麼表情是?
可以是
x => x.Lists.Include(l => l.Title)
.Where(l => l.Title != String.Empty && l.InternalName != String.Empty)
或
x => x.Lists.Include(l => l.Title)
.Where(l => l.Title != String.Empty)
.Where(l => l.InternalName != String.Empty)
當你正在尋找在Where
實現,你可以看到它接受Func(T, bool)
;這意味着:
T
是您的IEnumerable的類型bool
意味着它需要返回一個布爾值所以,當你做
.Where(l => l.InternalName != String.Empty)
// ^ ^---------- boolean part
// |------------------------------ "T" part
+1布爾/ T註釋 – 2009-11-17 13:44:03
x=> x.Lists.Include(l => l.Title).Where(l=>l.Title != String.Empty).Where(l => l.Internal NAme != String.Empty)
或
x=> x.Lists.Include(l => l.Title).Where(l=>l.Title != String.Empty && l.Internal NAme != String.Empty)
也許
x=> x.Lists.Include(l => l.Title)
.Where(l => l.Title != string.Empty)
.Where(l => l.InternalName != string.Empty)
?
你或許可以也把它在相同的where子句:
x=> x.Lists.Include(l => l.Title)
.Where(l => l.Title != string.Empty && l.InternalName != string.Empty)
你可以將其包含在同一個地方與& &操作語句...
x=> x.Lists.Include(l => l.Title).Where(l=>l.Title != String.Empty
&& l.InternalName != String.Empty)
您可以使用任何比較運算符(認爲它像做if語句),例如...
List<Int32> nums = new List<int>();
nums.Add(3);
nums.Add(10);
nums.Add(5);
var results = nums.Where(x => x == 3 || x == 10);
...將帶回3和10
傳遞給Where
可以包括任何正常的C#代碼拉姆達,例如&&
操作:
.Where(l => l.Title != string.Empty && l.InternalName != string.Empty)
這是有點偏離主題,但字符串類有一個方法String.IsNullOrEmpty,您可以使用,而不是比較它與String.Empty – 2009-11-17 13:45:17