是否可以創建一個具有2個輸出值的函數?帶有2個輸出值的Func <>
我需要一種方法從對象中獲取2個屬性,最好通過表達式,因爲
易於使用。
使用它與查詢提供程序一起選擇多個字段。
protected Expression<Func<T, TProperty1, TProperty2>> Select2Properties { get; set; }
public MyClass(Expression<Func<T, TProperty1, TProperty2>> selector) {
Select2Properties = selector;
}
// desired usage (pseudo)
x => (x.Property1, x.Property);
我知道這是完整的垃圾,但是任何其它溶液(例如要求2個的表達屬性選擇或需要的元組)導致有時不可讀構造函數調用,特別是當我需要多於2個屬性:
x => x.Property1, x => x.Property2, x => x.Property3, x => x.Property4
// or
x => Tuple.Create(x.Property1, x.Property2, x.Property3, x.Property4)
有沒有辦法實現我想要的?
使用表達式表示該代碼可能被查詢提供程序使用,使得這幾乎肯定不是一個可行的選項。 – Servy 2014-09-23 14:40:44
@Servy是的,它不適合查詢提供商;根據我剛剛編輯的內容,它不能很好地與'Expression'搭配使用。 – 2014-09-23 14:42:33
@Servy是的,表達式將被推入一個規範,然後通過應用到一個IQueryable來查找一個條目,其中2個等於2的屬性傳遞參數。所以是的,我需要一個表達。 – xvdiff 2014-09-23 14:55:33