避免来自RegEx匹配的DataGrid中的重复条目

本文关键字:DataGrid RegEx | 更新日期: 2023-09-27 18:15:51

我有以下函数,用于在文本中搜索IP并将其添加到DataGrid。

try
        {
            string source = e.Result;
            Regex re = new Regex(@"('d+'.'d+'.'d+'.'d+):1400");
            MatchCollection mc = re.Matches(source);
            if (mc.Count > 0)
            {
                foreach (Match matches in mc)
                {
                    int index = dataGridAllSonos.Columns.ToList().FindIndex(c => c.Header == matches.Groups[1].Value);
                    Console.WriteLine(index);

                    var data = new sonosDevice
                    {
                        sonosIP = matches.Groups[1].Value,
                        sonosName = "XX",
                        sonosRoom = "XX"
                    };
                    dataGridAllSonos.Items.Add(data);

                }
            }
        }
        catch (Exception ex)
        {
            if (ex.InnerException != null)
            {
                string err = ex.InnerException.Message;
                Console.WriteLine(err);
            }
        }

int index = dataGridAllSonos.Columns.ToList().FindIndex(c => c.Header == matches.Groups[1].Value);行检查当前找到的IP(第一列)是否已经存在于DataGrid中。

不幸的是,它总是返回-1,所以没有找到,我怎么能检查IP是否重复?

<

sonosDevice类/strong>

public class sonosDevice
{
    public string sonosIP { get; set; }
    public string sonosName { get; set; }
    public string sonosRoom { get; set; }
}

避免来自RegEx匹配的DataGrid中的重复条目

试试这个:

bool found = dataGridAllSonos.Items.OfType<string>().Any(i => i == matches.Groups[1].Value);