datalist读取的数据有重复,怎么才能让相同的数据只显示一条
展开全部
1、从数据库方面考虑 select distinct name from users
2、如果你datalist中的相同数据是有序(相同的ID在一起)的
eg: ID
1
1
2
3
用以下方法(原理:相同ID的只取一次):
for(int x = 0; x < datalist.count; x++)
{
for(int y = x + 1; y < datalist.count; y++)
{
if (datalist[y] == datalist[x])
{
//取出你要的记录
}
}
3、如果你datalist中的相同数据是无序(相同的ID可能不在一起)的
eg: ID
1
2
3
1
用以下方法(这里以取出没有重复ID为例):
//[ 创建一个结果对象 ]
List<string> listResult=new List<string>();
//[ 循环datalist ]
for(int i = 0;i < datalist.Count; i++)
{
//[ 依次从datalist往listResult对象中放入不重复的值 ]
listResult.Add(datalist[i]);
//[ 从datalist中第i个值往后循环比较 ]
for(int j=i+1; j<datalist.Count)
{
//[ 判断是否有相同的ID]
if(datalist[i] == datalist[j])
{
//[ 有相同的ID ]
//[ 从datalist列表中移除后一个ID(即datalist[j]) ]
datalist.RemoveAt(j);
}
else
{
//[ 没有相同的ID ]
//[ 进行下一次循环 ]
j++
}
//[ 从datalist中移除已经加入到结果对象中的ID ]
datalist.RemoveAt(i);
}
}
当循环结束时,listResult列表中的值即您要的结果
listResult[0]=1;
listResult[1]=2;
listResult[2]=3;
2、如果你datalist中的相同数据是有序(相同的ID在一起)的
eg: ID
1
1
2
3
用以下方法(原理:相同ID的只取一次):
for(int x = 0; x < datalist.count; x++)
{
for(int y = x + 1; y < datalist.count; y++)
{
if (datalist[y] == datalist[x])
{
//取出你要的记录
}
}
3、如果你datalist中的相同数据是无序(相同的ID可能不在一起)的
eg: ID
1
2
3
1
用以下方法(这里以取出没有重复ID为例):
//[ 创建一个结果对象 ]
List<string> listResult=new List<string>();
//[ 循环datalist ]
for(int i = 0;i < datalist.Count; i++)
{
//[ 依次从datalist往listResult对象中放入不重复的值 ]
listResult.Add(datalist[i]);
//[ 从datalist中第i个值往后循环比较 ]
for(int j=i+1; j<datalist.Count)
{
//[ 判断是否有相同的ID]
if(datalist[i] == datalist[j])
{
//[ 有相同的ID ]
//[ 从datalist列表中移除后一个ID(即datalist[j]) ]
datalist.RemoveAt(j);
}
else
{
//[ 没有相同的ID ]
//[ 进行下一次循环 ]
j++
}
//[ 从datalist中移除已经加入到结果对象中的ID ]
datalist.RemoveAt(i);
}
}
当循环结束时,listResult列表中的值即您要的结果
listResult[0]=1;
listResult[1]=2;
listResult[2]=3;
展开全部
和datalist无关.你sql语句里边加关键字distinct好了。
select distinct name from users
如果无法改动sql语句或者数据源不是数据库,那么需要在数据绑定到datalist之前对数据集进行清理,这个会比较繁琐了。涉及到算法优化等问题。最笨的思路是做个双层循环逐一比较。去掉相同的。
for(int x = 0; x < dataset.count; x++){
for(int y = x + 1; y < dataset.count; y++){
if (dataset[y] == dataset[x]){
//这里需要去掉重复的纪录,还要注意越界问题。。
}
}
}
select distinct name from users
如果无法改动sql语句或者数据源不是数据库,那么需要在数据绑定到datalist之前对数据集进行清理,这个会比较繁琐了。涉及到算法优化等问题。最笨的思路是做个双层循环逐一比较。去掉相同的。
for(int x = 0; x < dataset.count; x++){
for(int y = x + 1; y < dataset.count; y++){
if (dataset[y] == dataset[x]){
//这里需要去掉重复的纪录,还要注意越界问题。。
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、从数据库方面考虑
select
distinct
name
from
users
2、如果你datalist中的相同数据是有序(相同的ID在一起)的
eg:
ID
1
1
2
3
用以下方法(原理:相同ID的只取一次):
for(int
x
=
0;
x
<
datalist.count;
x++)
{
for(int
y
=
x
+
1;
y
<
datalist.count;
y++)
{
if
(datalist[y]
==
datalist[x])
{
//取出你要的记录
}
}
3、如果你datalist中的相同数据是无序(相同的ID可能不在一起)的
eg:
ID
1
2
3
1
用以下方法(这里以取出没有重复ID为例):
//[
创建一个结果对象
]
List<string>
listResult=new
List<string>();
//[
循环datalist
]
for(int
i
=
0;i
<
datalist.Count;
i++)
{
//[
依次从datalist往listResult对象中放入不重复的值
]
listResult.Add(datalist[i]);
//[
从datalist中第i个值往后循环比较
]
for(int
j=i+1;
j<datalist.Count)
{
//[
判断是否有相同的ID]
if(datalist[i]
==
datalist[j])
{
//[
有相同的ID
]
//[
从datalist列表中移除后一个ID(即datalist[j])
]
datalist.RemoveAt(j);
}
else
{
//[
没有相同的ID
]
//[
进行下一次循环
]
j++
}
//[
从datalist中移除已经加入到结果对象中的ID
]
datalist.RemoveAt(i);
}
}
当循环结束时,listResult列表中的值即您要的结果
listResult[0]=1;
listResult[1]=2;
listResult[2]=3;
select
distinct
name
from
users
2、如果你datalist中的相同数据是有序(相同的ID在一起)的
eg:
ID
1
1
2
3
用以下方法(原理:相同ID的只取一次):
for(int
x
=
0;
x
<
datalist.count;
x++)
{
for(int
y
=
x
+
1;
y
<
datalist.count;
y++)
{
if
(datalist[y]
==
datalist[x])
{
//取出你要的记录
}
}
3、如果你datalist中的相同数据是无序(相同的ID可能不在一起)的
eg:
ID
1
2
3
1
用以下方法(这里以取出没有重复ID为例):
//[
创建一个结果对象
]
List<string>
listResult=new
List<string>();
//[
循环datalist
]
for(int
i
=
0;i
<
datalist.Count;
i++)
{
//[
依次从datalist往listResult对象中放入不重复的值
]
listResult.Add(datalist[i]);
//[
从datalist中第i个值往后循环比较
]
for(int
j=i+1;
j<datalist.Count)
{
//[
判断是否有相同的ID]
if(datalist[i]
==
datalist[j])
{
//[
有相同的ID
]
//[
从datalist列表中移除后一个ID(即datalist[j])
]
datalist.RemoveAt(j);
}
else
{
//[
没有相同的ID
]
//[
进行下一次循环
]
j++
}
//[
从datalist中移除已经加入到结果对象中的ID
]
datalist.RemoveAt(i);
}
}
当循环结束时,listResult列表中的值即您要的结果
listResult[0]=1;
listResult[1]=2;
listResult[2]=3;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询