配列から最初以外のすべての要素を取得する


130

最初の要素を除いて単純な配列からすべてを取得するための1行の簡単なlinq式はありますか?

for (int i = 1; i <= contents.Length - 1; i++)
    Message += contents[i];

私はそれが凝縮する方が簡単かどうかを見たかっただけです。

回答:


244

はい、Enumerable.Skipはあなたが望むことをします:

contents.Skip(1)

ただし、配列を使用したい場合、結果はIEnumerable <T>になります。

contents.Skip(1).ToArray()

構造体のcontents新しいインスタンスで配列をラップすることもできますArraySegment<>。当時上記の回答は特に便利ではなかったこと、書かれていたが、.NET 4.5以降ArraySegment<>を実装IList<>IReadOnlyList<>および(を含め、ベース・インタフェースIEnumerable<>)は、たとえば渡すことができるようArraySegment<>string.Join
Jeppe Stig Nielsen 2017

Linqが嫌いなほど、これは許容できると判断しました。これは、アプリケーションの起動ごとに静的コンストラクターで実行されるため、パフォーマンスのオーバーヘッドが存在しないためです。
Krythic

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.