繁体   English   中英

如何检查Observable集合中已经存在的值

[英]How to check the value that is already present in Observable Collection

嗨,大家好,我想问一件事,我有一个数据网格,并在其中添加了多行,但我想检查是否应该在数据网格中输入重复的值。

我的代码是:

public ObservableCollection<VLANSPropertyClass> vlan { get; set; }

void AddVlans()
        {
            if ((String.IsNullOrEmpty(VlanName)) ||
                 String.IsNullOrEmpty(VlanID)    ||
                 String.IsNullOrEmpty(VlanIP1)   ||
                 String.IsNullOrEmpty(VlanIP2)   ||
                 String.IsNullOrEmpty(VlanIP3)   ||
                 String.IsNullOrEmpty(VlanIP4)   ||
                 String.IsNullOrEmpty(SelectedVlanPort))
            {
                MessageBox.Show("Please fill the empty fields", "Alert", MessageBoxButton.OK);
            }
            else
            {
                var serial = new VLANSPropertyClass();

                serial.S_No = vlan.Count + 1;

                serial.vname = VlanName;

                serial.vid = VlanID;

                serial.ip = VlanIP1 + "." + VlanIP2 + "." + VlanIP3 + "." + VlanIP4;

                serial.mask = Vlanmask1 + "." + Vlanmask2 + "." + Vlanmask3 + "." + Vlanmask4;

                serial.vports = SelectedVlanPort;


                vlan.Add(serial);
            }
        }

我想显示一个消息框,说明用户正在输入重复的值。 任何帮助将是非常可观的。 请我急忙解决。

这是一个快速的

bool itemExists = vlan.Any(item=>
{
    return (item.vname == VlanName) && 
           (item.ip == VlanIP1 + "." + VlanIP2 + "." + VlanIP3 + "." + VlanIP4) && 
           (item.vname == VlanName) && 
           (item.vports == SelectedVlanPort);
}

if(itemExists)
{
     //show message
} 
else
{
     //add new item 
}

简而言之,您正在使用linq方法Any来查看是否存在符合指定条件的项目。 如果匹配则返回,否则返回false

您可能需要using System.Linq;导入名称空间using System.Linq; 如果Any方法不可用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM