1

クラス(PlayCard)で満たされたlistViewがあります。同じ値を持つクラスを数えcardNumber たい listView の数が 2 倍以上の場合 testBool を true にしたい

私はすでにこのコードを手に入れました:

foreach (PlayCard pCard in listView1.Items)
{               
    if (listView1.Items.Count(i => i.cardNumber == pCard.cardNumber) > 1)
    {
        pCard.testBool = true;
    }
}

しかし、私はエラーが発生しました:

「Object」には「cardNumber」の定義が含まれておらず、「object」型の最初の引数を受け入れる拡張メソッド「cardNumber」が見つかりませんでした。

class PlayCard
{
        public int cardNumber { get; set; }
        public int id { get; set; }
        public bool testBool = false;
}
4

2 に答える 2

4

listView1 はオブジェクトのリストであり、 Object クラスには cardNumber メソッドがないと思います。オブジェクトが実際にオブジェクトであることがわかっている場合はPlayCard、キャストで問題を解決する必要があります。

foreach (PlayCard pCard in listView1.Items)
{ 

    if (listView1.Items.Count(i => ((PlayCard)i).cardNumber == pCard.cardNumber) > 1) 
    // etc
于 2013-05-26T15:08:06.320 に答える
1

ListView コントロールには、 type の項目のみが含まれていますobject

if次のステートメントを使用します。

if (listView1.Items.Count(i => ((PlayCard)i).cardNumber == pCard.cardNumber) > 1)

今すぐうまくいくはずです!

于 2013-05-26T15:09:04.543 に答える