1 回答

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以從 lambda 表達(dá)式創(chuàng)建一個(gè)表達(dá)式樹,然后將其編譯成一個(gè)函數(shù),然后可以使用strlist
和somevalue
參數(shù)調(diào)用該函數(shù),如下所示:
var strlist = new List<string> { "one", "two", "three" };
var somevalue = "two";
Expression<Func<List<string>, string, bool>> expression = (list, value) =>
list.Exists(item => item == value);
Func<List<string>, string, bool> exists = expression.Compile();
bool result = exists(strlist, somevalue);
或者您可以在一行中完成所有操作,但它有點(diǎn)難以閱讀:
var exists = ((Expression<Func<List<string>, string, bool>>)
((list, value) => list.Exists(item => item == value))).Compile();
但最后,這樣做不是更簡單:
bool result = strlist.Contains(somevalue);
- 1 回答
- 0 關(guān)注
- 147 瀏覽
添加回答
舉報(bào)