System.Int32 有符号 32 位整数 -2,147,483,648 到 2,147,483,6473^14 = 4,782,969,而14位的0,1,2组成的串可以用 0 - 4,782,968 表示,内部用 int 表示足够了。
解决方案 »
- “MySql.Data.MySqlClient.MySqlDbType”并不包含“Char”的定义
- C# 中 用sql数据库时使用 SqlDbType.VarChar access中使用出错
- ==============线程socket端口监听问题!请求帮忙! ================
- 若要用CS架构上传文件,需要怎么做
- resx文件如何转换成DLL,不使用编译
- 编译产生的问题,非常急,请进来看看
- c#运算的一点小问题!!望高人指点~
- 关于timer实时刷新产生的错误
- 一个关于日期类型和数据库操作的小问题。谢谢!
- JavaScript中引用ListBox控件的值或给ListBox赋值
- C#怎么调用API?
- sql 日期获得最新日期或获得小时:分:秒.毫秒
{
if (s.Length != 14) return -1; // 如果为了效率, 本行可以省略
int x = 0;
for (int i = s.Length - 1, d = 1; i >= 0; i--, d *= 3)
{
x += d * (int)(s[i] - '0');
}
return x;
}
定义合适大小的缓冲区(byte数组),内部缓冲大小一般是4K(4096)
遍历判断即可,为了提高效率,可以使用unsafe代码
@parm
获取System.Text.StringBuider
然后用SQL筛选,举个例子:select distinct Data, count(*) as num
from [数据库]
group by data其中data是用5楼转换的数据,你看num列就是重复次数了。
string[] a = File.ReadAllLines(@"1.txt"); // 200万行不能用这个,我只是举例。
Hashtable hs = new Hashtable();
foreach (string b in a)
{
if (hs.ContainsKey(b))
{
hs[b] = Convert.ToInt32(hs[b]) + 1; // 重复次数
}
else
{
hs.Add(b, 1);
}
}
IDictionaryEnumerator ide = hs.GetEnumerator();
while(ide.MoveNext())
{
int y = Convert.ToInt32(ide.Value); // 大于2就是重复的,y是重复次数。
}