[英]simple LINQ refactoring / style
由於LINQ Select()
需要FUNC<int,T>
作為參數,因此我必須定義一個未使用的變量。 我認為查詢語法在這種情況下更加清楚。
我如何擺脫任何混亂,使閱讀變得簡單整潔?
var rand = new Random();
//Method syntax
IEnumerable<char> c = Enumerable.Range(0, 10)
.Select( (p) => (char)('A' + rand.Next(0,26)));
//Query syntax
var c = from counter in Enumerable.Range(0,10)
select (char)('A' + rand.Next(0,26));
它看起來很干凈,而且易於閱讀。
我認為您不會再進一步了,也不值得-即使您定義自己的Select<T, TR>(this T t, Func<TR> f)
,您仍然必須調用它如t.Select(() => ...)
(注意空括號)。
您可以將未使用的變量顯式標記為_
:
var c = Enumerable.Range(0, 10).Select(_ => (char)('A' + rand.Next(0, 26)));
或者,您可以使用添加的抽象並在局部方法中隱藏投影:)
char RandomChar(int _) => (char)('A' + rnd.Next(0, 26));
var c = Enumerable.Range(0, 10).Select(RandomChar);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.