Forep in wpf(无法将char转换为字符串)?

时间:2014-09-17 10:37:19

标签: c# wpf loops foreach

每次在我创建的列表 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("....");
      }
}

我该怎么办?

3 个答案:

答案 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)

about equals metchod

如果Name属性是唯一的,请尝试将其与简单的&#39; ==&#39;进行比较。运营商。 你的foreach循环看起来也很奇怪。我不确定是否:ucLabel.ListData [0] .Name  是IEnumerable。也许你会想到

foreach (var x in ucLabel.ListData){
     if (x.Name==element.Name) { do something }
}

还要记住避免在foreach循环中添加或删除ListData内容,因为它会导致代码崩溃。