這是可能的,還是我只是試圖過度縮短我的代碼?修剪()使用動態查詢語言產生修剪IQueryable的字符串列表<string>
我想這可能是這樣的:
IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().All(s => s.Trim());
但是,這沒有什麼好:(
這是可能的,還是我只是試圖過度縮短我的代碼?修剪()使用動態查詢語言產生修剪IQueryable的字符串列表<string>
我想這可能是這樣的:
IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().All(s => s.Trim());
但是,這沒有什麼好:(
我想你只想:
IEnumerable<string> trimmed = untrimmedStrsArr.Select(s => s.Trim());
如果您有內存集合,如列表或數組,那麼您可以使用LINQ方法使用它們,因爲這些處理數據在內存中。處理數據庫時(例如使用LINQ to SQL),Queryable非常有用。
你可以在MSDN上找到關於各種方法的很好的文檔。下面應該解釋爲什麼你需要Select
而不是All
:
All
- 確定序列中的所有元素是否滿足條件。Select
- 將序列中的每個元素投影到新的表單中。All
不這樣做正確的方法是謂語,返回如果在每一個項目真正的收集匹配您在參數給出的條件使用
IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().Select(s => s.Trim());
這一個似乎爲我工作:
IQueryable<string> trimmed = untrimmed.AsQueryable<string>().Select(m => m.Trim());