如何比较字符串数组?

viphk 2010-11-12 11:22:05
有这么一个数组:
string Txt = Convert.ToString(row["txt"]);
string hmRemove = Txt.TrimEnd('|');
String[] strTemp = hmRemove.Split('|');


然后是这么几个整数:
12
35
65
89
56
80

怎么判断这个数组中是否存在上面数字中任一三个数?
只要满足存在上面整数中的任一三个数就返回真,
...全文
289 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
viphk 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 q107770540 的回复:]
C# code

//加上Distinct 更好一点
void Main()
{

string[] nums = {"12","35","65","89","56","80"};

string[] nums1 = {"12","35","65","891","561","801"};

string[] nums2 = {"12","35","651","891","……
[/Quote]
这样比较效力是不是要高?
claymore1114 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 q107770540 的回复:]

C# code

//加上Distinct 更好一点
void Main()
{

string[] nums = {"12","35","65","89","56","80"};

string[] nums1 = {"12","35","65","891","561","801"};

string[] nums2 = {"12","35","651","891","561","80……
[/Quote]
猫哥 正解,取 交集
q107770540 2010-11-12
  • 打赏
  • 举报
回复

//加上Distinct 更好一点
void Main()
{

string[] nums = {"12","35","65","89","56","80"};

string[] nums1 = {"12","35","65","891","561","801"};

string[] nums2 = {"12","35","651","891","561","801"};

Console.WriteLine("nums1数组是否符合条件:"+ (nums1.Intersect(nums).Distinct().Count() >=3));

Console.WriteLine("nums2数组是否符合条件:"+ (nums2.Intersect(nums).Distinct().Count()>=3));

}

/*
nums1数组是否符合条件:True
nums2数组是否符合条件:False

*/

q107770540 2010-11-12
  • 打赏
  • 举报
回复

void Main()
{

string[] nums = {"12","35","65","89","56","80"};

string[] nums1 = {"12","35","65","891","561","801"};

string[] nums2 = {"12","35","651","891","561","801"};

Console.WriteLine("nums1数组是否符合条件:"+ (nums1.Intersect(nums).Count() >=3));

Console.WriteLine("nums2数组是否符合条件:"+ (nums2.Intersect(nums).Count()>=3));

}

/*
nums1数组是否符合条件:True
nums2数组是否符合条件:False

*/
viphk 2010-11-12
  • 打赏
  • 举报
回复
哦,这么写是错的,没看清楚。
viphk 2010-11-12
  • 打赏
  • 举报
回复
Int32 containsCount = 0;
String[] nums = new String(){"12","35","65","89","56","80"};

foreach(String num in nums)
{
if(Array.IndexOf(strTemp,num)>-1) containsCount++;
return containsCount >=3;
}

这么写吗?
WM_JAWIN 2010-11-12
  • 打赏
  • 举报
回复

string Txt = Convert.ToString(row["txt"]);
Console.WriteLine(RegEx.IsMath(txt,@"(^|\|)(12|35|65|89|56|80)($|\|)"));

我喜欢用正侧
viphk 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lcl_data 的回复:]
除了一个一个判断 最后判断>3还有啥办法吗?

你可以把containsCount 的值放foreach里面,这样可以省点时间
[/Quote]

5楼的大哥?怎么写呢?
十八道胡同 2010-11-12
  • 打赏
  • 举报
回复
除了一个一个判断 最后判断>3还有啥办法吗?

你可以把containsCount 的值放foreach里面,这样可以省点时间
viphk 2010-11-12
  • 打赏
  • 举报
回复
谢谢,我试一下
边城的刀声 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gac520 的回复:]

机器人速度真快哈。
[/Quote]
大哥,这个头像是牛头人,不是机器人。。。
浪子-无悔 2010-11-12
  • 打赏
  • 举报
回复
机器人速度真快哈。
边城的刀声 2010-11-12
  • 打赏
  • 举报
回复

Int32 containsCount = 0;
String[] nums = new String(){"12","35","65","89","56","80"};

foreach(String num in nums)
{
if(Array.IndexOf(strTemp,num)>-1) containsCount++;
}

return containsCount >=3;
viphk 2010-11-12
  • 打赏
  • 举报
回复
3.5语法的程序在2.0框架中能完美运行吗?
viphk 2010-11-12
  • 打赏
  • 举报
回复
换是好啊,但是空间上安装的是2.0,我上传4.0的程序能支持吗?
flyerwing 2010-11-12
  • 打赏
  • 举报
回复
nums1.Intersect(nums).Distinct().Count() >=3));
这个好呀!
楼主还是换吧,都没看MVC都3了VS都2012了
赶紧换抓紧了!
viphk 2010-11-12
  • 打赏
  • 举报
回复
哦,那2.0有其它方法吗?
q107770540 2010-11-12
  • 打赏
  • 举报
回复
这是linq的语法

需要.net framework 3.0以上版本支持
viphk 2010-11-12
  • 打赏
  • 举报
回复
Intersect
为什么提示不包含Intersect的定义?

111,129

社区成员

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

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

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