wpf中的Foreach(无法将字符转换为字符串)

本文关键字:转换 字符 字符串 中的 Foreach wpf | 更新日期: 2023-09-27 18:22:07

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

我该怎么办?

wpf中的Foreach(无法将字符转换为字符串)

虽然很难知道ucLabel是什么,但您的意思可能是:

foreach (var x in ucLabel.ListData)
{
      if (x.Name.Equals(element.Name))
      {
           MessageBox.Show("....");
      }
}

您可以使用Linq-如果ListData(.Name)中的任何项目与您的文本字段匹配,这将匹配

string TextToMatch = TextEdit_GroupName.Text;
if(ListData.Any(x => x.Name == TextToMatch))
{
MessageBox.Show(string.format("{0} already exists",TextToMatch);
}

请记住,这主要是psuedo,但它应该可以在

中工作

大约等于metchod

如果Name属性是唯一的,请尝试将其与简单的"=="运算符进行比较。此外,你的前臂环看起来更光滑。我不确定这是否为:ucLabel.ListData[0].Name是IEnumerable。也许你会考虑

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

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