C# 部分匹配可观测集合<;字符串>;对象
好吧,假设我有一个C# 部分匹配可观测集合<;字符串>;对象,c#,.net,C#,.net,好吧,假设我有一个可观察的集合对象。在这个对象中,我有多种字符串: SomeString01 SomeString-02 somestring-03 SOMESTRING.04 aString 我想获取一个输入,我们将其称为模式,并从用户界面将其存储为字符串,然后在可观测集合上进行部分匹配。我需要对集合进行部分匹配,所有内容都不区分大小写。最后,我想把它们编译成一个全新的可观察集合。下面是一些例子: pattern = "SoME" // RESULTS: SomeString01 Some
可观察的集合
对象。在这个对象中,我有多种字符串:
SomeString01
SomeString-02
somestring-03
SOMESTRING.04
aString
我想获取一个输入,我们将其称为模式
,并从用户界面将其存储为字符串,然后在可观测集合
上进行部分匹配。我需要对集合进行部分匹配,所有内容都不区分大小写。最后,我想把它们编译成一个全新的可观察集合
。下面是一些例子:
pattern = "SoME"
// RESULTS:
SomeString01
SomeString-02
somestring-03
SOMESTRING.04
/* --- */
pattern = "-0"
// RESULTS:
SomeString-02
somestring-03
/* --- */
pattern = "ING0"
// RESULTS:
SomeString01
pattern = "s"
// RESULTS:
SomeString01
SomeString-02
somestring-03
SOMESTRING.04
aString
在ClickOnce应用程序中,实现这一点的最佳方法是什么?好的,我实际上在谷歌上做了更多研究,找到了更好的解决方案: 您可以使用IndexOf()并传递StringComparison.OrdinalIgnoreCase
string title = "STRING";
bool contains = title.IndexOf("string", StringComparison.OrdinalIgnoreCase) >= 0;
更好的方法是为字符串定义一个新的扩展方法:
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}
string title = "STRING";
bool contains = title.Contains("string", StringComparison.OrdinalIgnoreCase);
贡献者:
资料来源:
现在我在我的源代码中实现了它,如下所示:
foreach (string source in SourceStrings)
{
// Code for some pre-reqs here
if (source.IndexOf(Pattern, StringComparison.OrdinalIgnoreCase) >= 0)
{
subset.Add(source);
}
// Finish up anything else I had to do here
}
好的,我实际上在谷歌上做了更多的研究,找到了一个更好的解决方案: 您可以使用IndexOf()并传递StringComparison.OrdinalIgnoreCase
string title = "STRING";
bool contains = title.IndexOf("string", StringComparison.OrdinalIgnoreCase) >= 0;
更好的方法是为字符串定义一个新的扩展方法:
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}
string title = "STRING";
bool contains = title.Contains("string", StringComparison.OrdinalIgnoreCase);
贡献者:
资料来源:
现在我在我的源代码中实现了它,如下所示:
foreach (string source in SourceStrings)
{
// Code for some pre-reqs here
if (source.IndexOf(Pattern, StringComparison.OrdinalIgnoreCase) >= 0)
{
subset.Add(source);
}
// Finish up anything else I had to do here
}
就像盖布在评论中回答的那样 但更具体一点
.Where(x => x.IndexOf("Some",StringComparison.InvariantCultureIgnoreCase) != -1)
就像盖布在评论中回答的那样 但更具体一点
.Where(x => x.IndexOf("Some",StringComparison.InvariantCultureIgnoreCase) != -1)
你不能在收藏中使用
。其中(x=>)
?@saurabh。。。对集合执行不区分大小写的部分匹配的最佳方法是什么。我在陈述我的问题时做得不好吗?@Gabe我本来想这么做的,但我对案件不敏感。所以我觉得我做了一些很难/错误的事情。你不能在收藏中使用。Where(x=>)
?@saurabh。。。对集合执行不区分大小写的部分匹配的最佳方法是什么。我在陈述我的问题时做得不好吗?@Gabe我本来想这么做的,但我对案件不敏感。所以我觉得我做的事情很艰难/错误。使用它与。Where(x=>x.IndexOf(pattern,StringComparison.ordinallingorecase>=0)有什么区别
?或者这6个是单向的,半打是另一个吗?这是一个很好的书写方式。我不知道如何有效地在评论中发布链接。几乎6个是单向的,半打是另一个。使用它与有什么区别。其中(x=>x.IndexOf(pattern,StringComparison.OrdinalIgnoreCase>=0)
?或者这是一种方式,半打是另一种方式?这是一种很好的写作方式。我不知道如何有效地在评论中发布链接。几乎是一种方式,半打是另一种方式