我的代碼有這樣的事情:計算總的內容長度表達式
HttpFileCollection files
而不是通過每個文件的循環,並增加了file.ContentLength得到所有內容的總長度例如中
int totalLength = 0;
for (int i = 0; i < files.Count; i++)
{
totalLength += files[i].ContentLength;
}
有沒有辦法讓我有這樣的事情,我可以用一個lambda表達式做..
int totalLength = files.[some sort of delegate here to do the addition].
在此先感謝。
編輯:HttpFileCollection有一個GetEnumeratorMethod,但它需要實現IEnumerable使用lambda表達式嗎?
嗨,只是爲了理解,爲什麼我不需要遍歷文件和轉換?是否有某種自動枚舉發生在集合上?儘管閱讀「C#深度」,但還沒有完全掌握這個:) – Remotec 2010-03-04 16:46:53
HttpFileCollection實現IEnumerable,所以你可以枚舉它作爲「對象」。上面的LINQ語句執行內聯,然後處理你的總和。它在內部基本上與執行foreach相同,轉換爲HttpPostedFile,然後求和ContentLength(但更易於讀寫)。 – 2010-03-04 16:53:22
mmm - 這應該不會發生,給你上面發佈的代碼...你確定「文件」是一個HttpFileCollection,而不是一個字符串的集合,不知何故? – 2010-03-04 16:57:19