求助 匹配字符串的问题

tantxdpx 2010-09-02 05:26:20
请教下
有个List<string> strings
判断一个字符串中 是否包含有strings中的字符 怎么做效率最高?
...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
q107770540 2010-09-02
  • 打赏
  • 举报
回复

//用LINQ

string str = "dfkjdkfabdfe";

List<string> strings = new List<string>();

strings.Add("ab");
strings.Add("dfe");
strings.Add("ded");
strings.Add("gfgr");

var q = from s in strings
where str.Contains(s)
select s;
if (q.Count() > 0)
{
//有包含
}
Peter200694013 2010-09-02
  • 打赏
  • 举报
回复
Linq

string str = "dfkjdkfabdfe";

List<string> strings = new List<string>();

strings.Add("ab");
strings.Add("dfe");
strings.Add("ded");
strings.Add("gfgr");


var v = from s in strings where str.Contains(s) select s;

if (v.Count<string>() > 0)
Console.WriteLine("Yes");
else
Console.WriteLine("No");


//上边的循环速度就可以了,才O(n),可能linq慢些...
Peter200694013 2010-09-02
  • 打赏
  • 举报
回复
加个flag标记是否包含


string str = "dfkjdkfabdfe";

List<string> strings = new List<string>();

strings.Add("ab");
strings.Add("dfe");
strings.Add("ded");
strings.Add("gfgr");

bool flag = false;
foreach (string s in strings)
{
if (str.Contains(s))
{
flag = true;
break;
}
}

if (flag)
Console.WriteLine("Contains");
else
Console.WriteLine("Not Contains");
Peter200694013 2010-09-02
  • 打赏
  • 举报
回复
string str = "dfkjdkfabdfe";

List<string> strings = new List<string>();

strings.Add("ab");
strings.Add("dfe");
strings.Add("ded");
strings.Add("gfgr");

foreach (string s in strings)
{
if (str.Contains(s))
{
Console.WriteLine("Contains");
break;
}
}

110,566

社区成员

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

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

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