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

问题描述

用C#加载RFID阅读器的APIDLL,并将数据在ListView中显示出来。我加载DLL后数据是读出来了,并且生成了由RFID标签ID号组成的以逗号分隔的字符串(strTmp),使用split分割后的数组string[]spStr=strTmp.Split(newchar[]{',']);,并且Add到ListView中也很顺利,RFID是循环读取的,如果数组中的元素在ListView中已经存在,则记录读取的次数并在ListView中显示出来,ListView中不存在则加入ListView并开始计数,如果已经存在的RFID标签被拿走,ListView中则停止对被拿走的标签计数,依然显示被拿走的标签数据。现在遇到的难题是:如果有新的标签放到正在读的标签中时,ListView中会被增加很多重复项。下面是我的代码:publicvoidAddDGVm(stringstrTmp){if(strTmp.Length>0){string[]spStr=strTmp.Split(newchar[]{','});intsldNum=0;inti=0;intlvCount=lv.Items.Count;intspCount=spStr.Length;List<string>list=newList<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);elseAddlvItem(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++;}}}publicvoidAddlvItem(stringldNumStr,stringldLenStr,stringitemStr){if(ldNumStr.Length>0&&ldLenStr.Length>0&&itemStr.Length>0){ListViewItem[]lvi=newListViewItem[1];lvi[0]=newListViewItem(newstring[]{ldNumStr,ldLenStr,itemStr,DateTime.Now.ToString()});lv.Items.AddRange(lvi);}}请高手指点,如何让动态变化的数据在ListView中显示时不会出现重复项。

解决方案

解决方案二:
自己搜一下,是否存在不行吗
解决方案三:
我没仔细看,不过LINQ里那么多ExtensionMethod,没一个有帮助吗?
解决方案四:
是需要ListView动态显示,开始清点后ListView内的数据不须人工干预
解决方案五:
写一个判断是否存在的方法,在添加之前先判断
解决方案六:
QuerythecurrentListViewItemexistincurrentItenofListViewornot,ifnotexist,youcaninsertit.
解决方案七:
ListView.Item.

时间: 2024-09-30 20:39:45

C#动态数组中重复项和ListView显示的相关文章

javascript 删除数组中重复项(uniq)_javascript技巧

可以直接使用的代码:修正版 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 下面是进阶教程与说明,喜欢跟深入的朋友可以参考下.首先让我们看下 YUI 是如何处理的: 复制代码 代码如下: var toObject = function(a) { var o = {}; for (var i = 0; i < a.length; i = i+1) { o[a[i]] = true; } return o; }; var keys = function(o) { var a=[], i;

JS简单去除数组中重复项的方法_javascript技巧

本文实例讲述了JS简单去除数组中重复项的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script> var arr = ["aaa","bb

高效率去掉js数组中重复项

Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法: 1 function unique(arr) { 2 var result = [], isRepeated; 3 for (var i = 0, len = arr.length; i < len; i++) { 4 isRepeated = false; 5 for (var j = 0, len = result.length; j < len; j++) { 6 if (arr[i] == result

asp下去除数组中重复项的方法_应用技巧

复制代码 代码如下: <%Function MoveR(Rstr) Dim i,SpStr SpStr = Split(Rstr,",") For i = 0 To Ubound(Spstr) If I = 0 then MoveR = MoveR & SpStr(i) & "," Else If instr(MoveR,SpStr(i))=0 and i=Ubound(Spstr) Then MoveR = MoveR & SpStr

asp下去除数组中重复项的方法

复制代码 代码如下:<%Function MoveR(Rstr) Dim i,SpStr SpStr = Split(Rstr,",") For i = 0 To Ubound(Spstr) If I = 0 then MoveR = MoveR & SpStr(i) & "," Else If instr(MoveR,SpStr(i))=0 and i=Ubound(Spstr) Then MoveR = MoveR & SpStr(

js 删除数组中重复项的几种方法

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="conte

运用javascript如何去除数组中重复的数字或者字符串?

问题描述 运用javascript如何去除数组中重复的数字或者字符串? 运用javascript如何去除数组中重复的数字或者字符串?谢谢了.方法越多越好,谢谢. 解决方案 JavaScript实现数组去除重复整理 javascript 去除数组中重复项的几种方法 解决方案二: 本人只会用JAVA写

去除数组中重复的项

数组|重复 <% '======================================'作者:阿里西西'时间:2005.12.20'作用:去除数组中重复的项'======================================Function MoveR(Rstr) Dim i,SpStr SpStr = Split(Rstr,",") For i = 0 To Ubound(Spstr)  If I = 0 then   MoveR = MoveR &

php去除二维数组的重复项方法_php技巧

php中去一维数组的重复项可以通过php内置函数array_unique(),但是php的array_unique函数对多维数组并不适用,怎么才能去除二维数组中的重复项呢? 以下给大家提供一个函数. //二维数组去掉重复值 function unique_arr($array2D,$stkeep=false,$ndformat=true){ $joinstr='+++++'; // 判断是否保留一级数组键 (一级数组键可以为非数字) if($stkeep) $stArr = array_keys