判断循环中当前项是否等于上一项?

shuihan16 2010-03-03 02:50:10
比如一个这样的结构:
代码 标识
a 0
a 1
a 0
a 0
a 0
b 1
b 0
b 0
b 0
c 0
c 1
也就是说同一个代码中的标识有,且必须只能有一个是1的。
我想到了一行行的循环,可是,这个到底怎么判断呢?
高手指点一下吧,真的想好久,搞不出来……
...全文
168 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuihan16 2010-03-04
  • 打赏
  • 举报
回复
真的非常感谢。
终于解决了。
十八道胡同 2010-03-03
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Globalization;

namespace CSharp
{
class mark
{
public char code;
public List<int> list = new List<int>();
public mark(char ch, params int[] _list)
{
code = ch;
for (int i = 0; i < _list.Length; i++)
{
list.Add(_list[i]);
}
}
}
class Program
{
static void Main(string[] args)
{
List<mark> mm = new List<mark>();
mm.Add(new mark('a', 0, 0, 0));
mm.Add(new mark('b', 1, 1));
foreach (mark m in mm)
{
if (m.list.IndexOf(1) == m.list.LastIndexOf(1)) //only 1 or none
{
if (m.list.IndexOf(1) == -1) // none
{
m.list.Add(1);
}
}
else //more than 1
{
m.list.RemoveAll(delegate(int i)
{
return i == 1;
});
m.list.Add(1);
}

//output
Console.Write("{0} : ", m.code);
foreach (int i in m.list)
Console.Write(i);
Console.WriteLine();
}

}


}
}
波导终结者 2010-03-03
  • 打赏
  • 举报
回复
你如果是已经按照abc排好序的,那还不简单,设置一个布尔值,第一次为1的时候为true,而为1又为true的时候不就是不止1个1了
如果没排好序,搞个数组或者hashtable也是一样的
shuihan16 2010-03-03
  • 打赏
  • 举报
回复
我给出的列表是要达到的效果。
但是现实中可能会有
代码 标识
a 0
a 0
a 0
b 1
b 1
这种数据都是不对的,标识必须有一个是 1, 但是 ,也只能有一个 是1
十八道胡同 2010-03-03
  • 打赏
  • 举报
回复
引用 4 楼 shuihan16 的回复:
引用 2 楼 yang_5 的回复:不是很明白LZ的问题,能否详细一点?


也就是说同一个代码的标识值 只能有一个是等于1的,其他的都要等于0.

就是说 a 1的只有一条, a 0的可以有很多



楼主给出的列表不久符合要求吗?
whb147 2010-03-03
  • 打赏
  • 举报
回复
用一个键值对
键存代码值用来计数
判断存在就加1
不存在就add
shuihan16 2010-03-03
  • 打赏
  • 举报
回复
引用 2 楼 yang_5 的回复:
不是很明白LZ的问题,能否详细一点?



也就是说同一个代码的标识值 只能有一个是等于1的,其他的都要等于0.
shuihan16 2010-03-03
  • 打赏
  • 举报
回复
不是数据库里面的,是界面上的值 ,所以不能用SQL语句。
yang_5 2010-03-03
  • 打赏
  • 举报
回复
不是很明白LZ的问题,能否详细一点?
whb147 2010-03-03
  • 打赏
  • 举报
回复
select [代码],count(标识) as Total from table where [标识]=1 group by [代码] having count(标识)=1

order by Total desc

>1的就说明有重复了

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧