我正在尝试验证是否在复选框中选中了属于Enum列表的项。
我正在尝试这样的事情:
if (CrystalsHeldBox2.SelectedItem == Player.CrystalsHeld.Find(item => item == Player.Crystals.Ayanlune))
它是类的一部分,如下:
[JsonProperty("CrystalsHeld")]
public List<Crystals> CrystalsHeld { get; set; }
[JsonProperty("RV")]
public List<string> RV { get; set; }
public Player()
{
Inventory = new List<Item>();
CrystalsHeld = new List<Crystals>();
RV = new List<string>();
}
public enum Crystals : int
{
Ayanlune = 1
}
基本上我想做这样的事情: 如果Ayanlune Crystal位于显示所有播放器CrystalsHeld的列表框中,则为true。
任何帮助将不胜感激。
答案 0 :(得分:0)
我认为您不需要LINQ。一个简单的List<T>.Contains
应该可以做到:
var res= JsonConvert.DeserializeObject<phaxioResponse>(json);
Console.WriteLine(string.Join(",", res.data));
答案 1 :(得分:0)
CrystalsHeld
是List
,而不是ListBox
。 ListBox
是UI控件,而List
是C#集合。
您可以检查List
是否包含这样的对象:
if (CrystalsHeld.Contains(CrystalsHeldBox2.SelectedItem))
{
// Do Stuff
}
如果它实际上是ListBox
,则该控件具有Items
属性,其中包含ListBox
中的内容。您可以在类似下面的代码中找到它:
if (CrystalsHeld.Items.Contains(CrystalsHeldBox2.SelectedItem))
{
// Do Stuff
}
或者,如果您使用的是MVVM,则可以将控件的Items
属性绑定到ViewModel中的属性,等等。
答案 2 :(得分:0)
所以!我想到了!我需要做等于:
if (CrystalsHeldBox2.SelectedItem.Equals(Player.Crystals.Ayanlune))
{
AddInline("This is the right object!");
}