猿问

C# 检查列表框中是否选择了 List<enum> 项,如果是则返回 true

我正在尝试验证是否在复选框中选择了属于 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 的列表框中,那么是真的。


任何帮助,将不胜感激。


HUH函数
浏览 210回答 3
3回答

浮云间

所以!我想到了!我需要做等于:if (CrystalsHeldBox2.SelectedItem.Equals(Player.Crystals.Ayanlune))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AddInline("This is the right object!");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }

回首忆惘然

我认为您不需要为此使用 LINQ。一个简单的List<T>.Contains应该做:if&nbsp;(Player.CrystalsHeld.Contains((Crystals)&nbsp;CrystalsHeldBox2.SelectedItem))

慕的地8271018

CrystalsHeld是List,不是ListBox。AListBox是 UI 控件,而 aList是 C# 集合。您可以检查 a 是否List包含这样的对象:if (CrystalsHeld.Contains(CrystalsHeldBox2.SelectedItem)){&nbsp; &nbsp; // Do Stuff}如果它实际上是 a ListBox,则该控件具有一个Items属性,其中包含ListBox. 您可以在后面的代码中访问它,例如:if (CrystalsHeld.Items.Contains(CrystalsHeldBox2.SelectedItem)){&nbsp; &nbsp; // Do Stuff}或者,如果您使用的是 MVVM,则可以将控件的Items属性绑定到 ViewModel 中的属性,等等。
随时随地看视频慕课网APP
我要回答