2017-01-12 7 views
2

私の分割文字列の3番目のインデックスを取得しようとしています。しかし、私はLINQを使って正確な値を得ることができません。LINQを使用して分割後に文字列配列のインデックスを取得

string strInput = @"AA BB CC DD EE"; 
var xRes = strInput.Split(' ').Skip(1).Take(1).Select(c => c).ToArray(); 

最後の行は、正確な3番目の配列を取得することができた。私は「CC」である第三のインデックス値を取得しようとしています。しかし、私は文字列に変換することができませんでした。私はこれを行う場合:

var xRes = strInput.Split(' ').Skip(2).Take(1).Select(c => c[0].ToString()).ToString(); 

を私の代わりにこれを取得:

System.Linq.Enumerable + WhereSelectEnumerableIterator`2 [可能System.String、可能System.String]

答えて

3

続い

var xRes = strInput.Split(' ').ElementAt(2); 

それともSkipすでに示唆したように、この方法よりも、インデックスを使用しない:

var xRes = strInput.Split(' ').Skip(2).First() 
+0

これはトリックを行います、ありがとう! –

8

方法について

string strInput = @"AA BB CC DD EE"; 
var xRes = strInput.Split(' ')[2]; 

LINQを使用する必要はありません。

LINQの使用を主張する場合は、ElementAtを使用してください。 First

var xRes = strInput.Split(' ').Skip(2).First(); 
+0

をはい、私はそれを行うことができました。私はLINQ: –

+2

または 'strInput.Split( '').Where((item、index)=> index == 2).First();'が間違いなく* overshoot *であるのであれば好奇心が強いです。コンテクストですが、値とインデックスの両方に条件が必要な場合に役立ちます。 –

関連する問題