当前位置:编程学习 > C#/ASP.NET >>

C#动态数组中重复项和ListView显示

用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中显示时不会出现重复项。 --------------------编程问答-------------------- 自己搜一下,是否存在不行吗 --------------------编程问答-------------------- 我没仔细看,不过LINQ里那么多Extension Method,没一个有帮助吗? --------------------编程问答-------------------- 是需要ListView动态显示,开始清点后ListView内的数据不须人工干预 --------------------编程问答-------------------- 写一个判断是否存在的方法,在添加之前先判断 --------------------编程问答--------------------
Query the current ListViewItem exist in current Iten of ListView or not, if not exist, you can insert it.  --------------------编程问答-------------------- ListView.Item.
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,