用C#加载RFID阅读器的API DLL,并将数据在ListView中显示出来。
我加载DLL后数据是读出来了,并且生成了由RFID标签ID号组成的以逗号分隔的字符串(strTmp),使用split分割后的数组 string[] spStr=strTmp.Split(new char[]{',']);,并且Add到ListView中也很顺利,RFID是循环读取的,如果数组中的元素在ListView中已经存在,则记录读取的次数并在ListView中显示出来,ListView中不存在则加入ListView并开始计数,如果已经存在的RFID标签被拿走,ListView中则停止对被拿走的标签计数,依然显示被拿走的标签数据。现在遇到的难题是:如果有新的标签放到正在读的标签中时,ListView中会被增加很多重复项。
下面是我的代码:
        public void AddDGVm(string strTmp)
        {
            if (strTmp.Length > 0)
            {
                string[] spStr = strTmp.Split(new char[] { ',' });
                int sldNum=0;
                int i=0;
                int lvCount = lv.Items.Count;
                int spCount = spStr.Length;
                List<string> list = new List<string>();
                while (i < spCount)
                {
                    if (lvCount > 0 && i < lvCount)
                    {
                        if (lv.FindItemWithText(spStr[i].Substring(1))!=null)
                        
                            lv.Items[i].SubItems[0].Text = Convert.ToString(Convert.ToInt32(lv.Items[i].SubItems[0].Text) + 1);
                        
                        else
                        
                            AddlvItem(sldNum.ToString(), spStr[i].Substring(0, 1), spStr[i].Substring(1));
                        
                    }
                    else
                    {
                        AddlvItem(sldNum.ToString(), spStr[i].Substring(0, 1), spStr[i].Substring(1));
                        break;
                    }                    i++;
                }             }
        }
        public void AddlvItem(string ldNumStr, string ldLenStr,string itemStr)
        {
            if (ldNumStr.Length > 0 && ldLenStr.Length > 0 && itemStr.Length > 0)
            {
                ListViewItem[] lvi = new ListViewItem[1];
                lvi[0] = new ListViewItem(new string[] { ldNumStr, ldLenStr, itemStr,DateTime.Now.ToString()});
                lv.Items.AddRange(lvi);
            }        }请高手指点,如何让动态变化的数据在ListView中显示时不会出现重复项。