每次在我创建的列表 ListData 中添加项目时,我必须检查该项目是否存在。
这是元素:
public ObservableCollection<LabelGroup_RowItem> ListData = new
ObservableCollection<LabelGroup_RowItem>();
public class LabelGroup_RowItem
{
public int ID { get; set; }
public string Name { get; set; }
}
element.Name = TextEdit_GroupName.Text;
foreach (string x in ucLabel.ListData[0].Name)
{
if (x.Equals(element.Name))
{
MessageBox.Show("....");
}
}
我该怎么办?
答案 0 :(得分:2)
虽然很难知道ucLabel
是什么,但您可能意味着:
foreach (var x in ucLabel.ListData)
{
if (x.Name.Equals(element.Name))
{
MessageBox.Show("....");
}
}
答案 1 :(得分:0)
你可以使用Linq - 如果ListData(.Name)中的任何项目与你的文本字段匹配,这将匹配
string TextToMatch = TextEdit_GroupName.Text;
if(ListData.Any(x => x.Name == TextToMatch))
{
MessageBox.Show(string.format("{0} already exists",TextToMatch);
}
请记住,这主要是假的,但应该有效
答案 2 :(得分:0)
如果Name属性是唯一的,请尝试将其与简单的&#39; ==&#39;进行比较。运营商。 你的foreach循环看起来也很奇怪。我不确定是否:ucLabel.ListData [0] .Name 是IEnumerable。也许你会想到
foreach (var x in ucLabel.ListData){
if (x.Name==element.Name) { do something }
}
还要记住避免在foreach循环中添加或删除ListData内容,因为它会导致代码崩溃。