我重構了一些LINQ查詢,我試圖確定最有效的重構。返回Func <bool>或返回bool的方法更有效嗎?
原始線是相似於查詢:
static void Main() {
var list = new List<string> { "A", "BB", "CCC" };
var shortList = list.Any(name => name.Length == 1);
}
我可以重構出字符串長度檢查的方法如下:
static void Main() {
var list = new List<string> { "A", "BB", "CCC" };
var shortList = list.Any(name => IsShort(name));
}
private static bool IsShort(string name) {
return name.Length == 1;
}
OR,我可以重構出完整的函數功能到一個方法:
static void Main() {
var list = new List<string> { "A", "BB", "CCC" };
var shortList = list.Any(IsShortFunc());
}
private static Func<string, bool> IsShortFunc() {
return name => name.Length == 1;
}
問題是,這在運行時更有效嗎?
測量三個版本!請記住,有一個功能是有用的重用;-) – 2010-11-16 07:57:34