2015-08-20 86 views
0

我有一行代碼,看起來像這樣我可以在這裏使用什麼數據結構?

var results = DataBase.Find(x.ImportanceFactor > 5 && x.ImportanceFactor < 10); 

現在在Find功能,我可以用什麼數據結構?

public static int Find(??? input) 
{ 
: 
Some Code 
: 
} 

的格式必須是究竟如何我上面指定,但我已經具有一個很難找到的數據結構來支持它。我已經嘗試了Linq中的一些表達式,但沒有成功。

編輯澄清:

Find功能將進入數據庫,並尋找一個對象,它的重要性是在指定範圍內,並返回取物在這個範圍內具有最高的大小值。同樣,不管Find函數中發生了什麼,第一行不能以任何方式改變。下面的線需要在Find

x.ImportanceFactor > 5 && x.ImportanceFactor < 10 

EDIT2可用:

X是一個動態的表達,不與屬性的對象。

+0

您是否聽說過'System.Linq'命名空間的'Where'擴展方法? –

+0

'Func '?雖然基於使用示例,但它看起來只是一個「布爾」。 – David

+0

不用了,快速瀏覽一下,語法接縫是不同的。 – user2824991

回答

1

此:

x.ImportanceFactor > 5 && x.ImportanceFactor < 10 

只是一個bool

public static int Find(bool input) 

但在這種條件下給出的x的使用,我嫌疑你真正的意思是:

var results = DataBase.Find(x => x.ImportanceFactor > 5 && x.ImportanceFactor < 10); 

在這種情況下,你是看結構上非常類似於像Any()Where()on IEnumerable<T>這樣的方法。這會使用更像Func<T, bool>

public static int Find<T>(Func<T, bool> input) 
+0

我迷上了原來的問題。我沒有指定x是一個動態表達式,而不是一個帶參數的對象。我基本上想要 {x.ImportanceFactor> 5 && x.ImportanceFactor <10}在Find方法中可用 – user2824991

+1

@ user2824991:這就是'Func <>'的含義。這是一個可以在'Find()'方法中執行的表達式。 – David

+0

。找到(System.Func )''不能從使用情況中推斷出來。嘗試明確指定類型參數。 這就是我得到的錯誤 – user2824991