簡體   English   中英

簡單的LINQ重構/樣式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM