2017-09-21 11 views
-2

datagridviewの最後の行をプログラムで削除しようとしていますが、できません。ここで私はこれまでのところ、このエラーがクエリの本文はselect句で終了する必要があります

エラーが言うように、クエリ体がselect句またはgroup節

+1

から[...] [...]ここで、[...]で選択し[...] – Mischa

+0

そこに別のエラーがあります ' LastOrDefault'は関数であり、 'LastOrDefault()'に変更する必要があります。それは既に返信されているのでしょうか? – bradbury9

答えて

2
  1. で終わらなければなりませんを上げて

    DataGridViewRow LastRow = (from @this in DataGridView1.Rows.OfType<DataGridViewRow>() 
              where [email protected]).LastOrDefault; 
    if (LastRow != null) { 
        DataGridView1.Rows.Remove(LastRow); 
    } 
    

    しようとしたものですクエリにselect句を追加する必要があります。

    from @this in DataGridView1.Rows.OfType<DataGridViewRow>() 
    where [email protected] 
    select @this 
    
  2. そして、あなたはLastOrDefault周りの括弧を忘れてしまった:この場合は、よりよいですのためのメソッド構文を使用して、私の意見ではまた

    DataGridViewRow LastRow = (from @this in DataGridView1.Rows.OfType<DataGridViewRow>() 
              where [email protected] 
              select @this).LastOrDefault(); 
    

。短く、あなたはLastOrDefaultで述語を配置することができます両方:

var result = DataGridView1.Rows.OfType<DataGridViewRow>().LastOrDefault(r => !r.IsNewRow); 
+0

ありがとうございました。魅力のように動作します –

+1

@SharmaHussein - あなたは歓迎です:)私は少し前に戻って、linqとクエリの構文について少し読むことをお勧めします:) –

関連する問題