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("....");
}
}
我该怎么办?
虽然很难知道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内容,因为这会使代码崩溃。