2017-10-18 4 views
1

私のプロジェクトでは、ボックスと呼ばれるリストにセル(TextBlockコントロール、私の場合)を編成しています。すべてのボックスには9つのセルがあります。これらのリスト内のすべてのセル要素を比較し、が指定した式に一致する場合はtrueを返しますか?私が各セルのリストを反復しながら比較するたびに、私は、与えられたセルが比較を行う際にそれ自身を考慮しないことを保証する必要があります。このようにして、それは正当には自分自身の価値を考慮しないでしょう。したがって私は以下に書いてみたラムダのステートメントです。私はFirst()とSingle()が単一の要素を返すことを知っているので、問題を引き起こしているのは私のラムダだと思われます。これは、コンパイルしても、コードをステップ実行することは、より頻繁に、それは必要以上にwhile文をスキップするようだと、私はまだ同じでセル間の同一の.text値を取得しています他の要素が自分自身をスキップしながら式にマッチするかどうかを確認するLinq方法

while (cell.Text == box.SkipWhile(e => e == cell).First().Text) 
{ 
    // change cell.Text's value here as long as any other cell's 
    // .Text value is the same 
} 

:私は、次のコードを使用していますボックス。

+1

あなたの仕様は非常に不明確であるボックスは同じText値で何かが含まれている場合、それはあなたを教えてくれますが、それはcellと同じ項目でない場合(おそらく、参照することによっては、それはcellが何であるかに依存します)。 "...リスト内のすべての要素を比較する..."またはあなたのList of Boxes?私たちがまだ知りませんでしたセルのコレクションはリストですか? "...一致する式..."どちらの式ですか?どんな表現ですか? "...セル自体の例外を作る..."という表現には、入力としてセルが記述されていますか? "Text.Value ==自身であればカウントされません"、それ自体がセルの場合、Text.ValueもCellであることを意味しますか? –

+0

@ HaraldCoppoolseありがとう、私はより明確にするために、最初の投稿を編集しました。今のところ、juharrの答えは私のニーズには十分でしたが、他のアイデアはいつでも歓迎します。さらに明確にする必要がある場合は私に知らせてください –

答えて

2

Anyのように使用できます。

if(box.Any(e => e.Text == cell.Text && e != cell)){ 
    cell.Text = somethingDifferent; 
} 
関連する問題