1

これは私が持っているものです。最初のセル以外の任意の行から、null 以外/空のテキスト値を持つ最初のセルを返します。これらの条件が満たされない場合、空のセットが返されます。where/select句の2番目のセットを必要としない、これを行うよりコンパクトな方法はありますか?

(ああ、これは WatiN Table 要素を使用しています...)

this.Lessors = lessorTable.OwnTableRows
            .Where(row => row.Index > 0)
            .Select(row => row.TableCells
                .FirstOrDefault(cell => 
                    !string.IsNullOrEmpty(cell.Text) && cell.Text.Trim() != string.Empty))
            .Where(cell => cell != null)
            .Select(cell => cell.Text)
            .ToList();
4

1 に答える 1

3

新しい範囲変数とメソッドの使用String.IsNullOrWhiteSpace法を導入すると、クエリをよりコンパクトにすることができます。

Lessors = from row in lessorTable.OwnTableRows
          let cell = row.TableCells
                        .FirstOrDefault(c => !String.IsNullOrWhiteSpace(c.Text))
          where row.Index > 0 && cell != null
          select cell.Text;
于 2012-12-17T22:06:04.023 に答える