2012-01-24 15 views
0

私はlinqクエリを記述しようとしています。Linqクエリヘルプc#

2次元配列(d)を取るために私のクエリが必要です。最初の要素と最後の要素が空ではないが、その中の要素が空の場合、空の要素が削除されます。

{{test,"",test}, {test, test, test,"",test}} = {{test,test}, {test, test, test,test}} 

しかし、私は空の文字列を維持できるようにする必要がありますので、ちょうどそれらを検索し、それらを削除することはできません。

私は十分に説明してくれることを願っています。

+0

私はlinqで最初と最後の要素を非常に単純にチェックすることができますので、私は中間要素をチェックし、各配列上の結果を得る方法に苦労しています....どこから始めるべきかわかりません.... – user101010101

+0

@ user101010101 "しかし、空の文字列を保持して、検索して削除できないようにする必要があります。 ..どうやってそれらを保つ予定ですか? –

答えて

1

たぶん

var out = input.Select(x => 
     ((!String.IsNullOrEmpty(x.FirstOrDefault())) 
     && (!String.IsNullOrEmpty(x.LastOrDefault()))) 
      ? x.Where(y => !String.IsNullOrEmpty(y)).ToArray() 
      : x).ToArray(); 

を。

1

私はこれしようとするだろう:あなただけあなたはおそらくToArraysを削除することができますIEnumerablesが必要な場合は

string test = "test"; 
var array = {{test,"",test}, {test, test, test,"",test}}; 

string[] TransformRow(string[] inputRow) 
{ 
    return intputRow.Where(cell => cell != string.Empty).ToArray(); 
} 

var validArray = array.Select(row => TransformRow(row));