为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
HUH函数 2021-11-21 11:00:06
我正在尝试验证是否在复选框中选择了属于 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 的列表框中,那么是真的。任何帮助,将不胜感激。
查看完整描述

3 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

所以!我想到了!我需要做等于:


if (CrystalsHeldBox2.SelectedItem.Equals(Player.Crystals.Ayanlune))

                {

                    AddInline("This is the right object!");

                }


查看完整回答
反对 回复 2021-11-21
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

我认为您不需要为此使用 LINQ。一个简单的List<T>.Contains应该做:

if (Player.CrystalsHeld.Contains((Crystals) CrystalsHeldBox2.SelectedItem))


查看完整回答
反对 回复 2021-11-21
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

CrystalsHeld是List,不是ListBox。AListBox是 UI 控件,而 aList是 C# 集合。


您可以检查 a 是否List包含这样的对象:


if (CrystalsHeld.Contains(CrystalsHeldBox2.SelectedItem))

{

    // Do Stuff

}

如果它实际上是 a ListBox,则该控件具有一个Items属性,其中包含ListBox. 您可以在后面的代码中访问它,例如:


if (CrystalsHeld.Items.Contains(CrystalsHeldBox2.SelectedItem))

{

    // Do Stuff

}

或者,如果您使用的是 MVVM,则可以将控件的Items属性绑定到 ViewModel 中的属性,等等。


查看完整回答
反对 回复 2021-11-21
  • 3 回答
  • 0 关注
  • 209 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信