問題があるのはあなたの以前の行です:
t.Add(new Item(){val = new List<int>(){1,2,3};support=.1);
これは、さまざまな構文の組み合わせです。そのはず:
t.Add(new Item(){val = new List<int>(){1,2,3}, support=.1});
...できればより良いプロパティ名などを使用しますが、残りは機能するはずです-ただし、の結果で何かをする必要がありますAny
. Any
呼び出し自体は有効です。動作する短いが完全なプログラムを次に示します。
using System;
using System.Collections.Generic;
using System.Linq;
public class Item
{
public List<int> Values { get; set; }
public double Support { get; set; }
}
class Test
{
static void Main()
{
List<Item> list = new List<Item>
{
new Item { Values = new List<int>{1, 2, 3},
Support = 0.1 }
};
var check = new Item { Values = list[0].Values,
Support = list[0].Support };
bool found = list.Any(a => a.Values == check.Values);
Console.WriteLine(found);
}
}
これは 2 つのリスト間の参照比較を実行していることに注意してください。同じ値 (1、2、3) で別のリストを作成した場合、それは見つかりません。a.Values.SequenceEqual(b.Values)
または同様のものを使用する必要があります。