【发布时间】:2017-10-10 14:38:40
【问题描述】:
我正在尝试查看字符串数组中是否存在确切的子字符串。如果子字符串存在于字符串中,则返回 true,但它将包含拼写错误。
编辑:
例如,如果我正在检查字符串数组中是否存在“Connecticut”,但拼写为“Connecticute”,它仍然会返回 true,但我不希望这样。我希望它为“康涅狄格”返回 false 并为
仅限“康涅狄格”
有没有办法使用 LINQ 做到这一点?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
string[] sample = File.ReadAllLines(@"C:\samplefile.txt");
/* Sample file containing data organised like
Niall Gleeson 123 Fake Street UNIT 63 Connecticute 00703 USA
*/
string[] states = File.ReadAllLines(@"C:\states.txt"); //Text file containing list of all US states
foreach (string s in sample)
{
if (states.Any(s.Contains))
{
Console.WriteLine("Found State");
Console.WriteLine(s);
Console.ReadLine();
}
else
{
Console.WriteLine("Could not find State");
Console.WriteLine(s);
Console.ReadLine();
}
}
}
}
}
【问题讨论】:
-
您是否想知道 LINQ 是否具有执行自动拼写检查的能力?如果是这样,答案是否定的。
-
如果有其他拼写,您必须编写您认为是“通过”的替代拼写。这可以通过基本的字符串函数或正则表达式来完成。
-
@JoakimSkoog 我想知道是否有办法使用 .Contains 返回完全匹配。似乎没有。您知道返回完全匹配的好方法吗?
-
@user3394486
Contains返回精确匹配 -
如果
Connecticue应该为Connecticut返回true,那么Conecticu和Konnecticut呢?您的匹配规则完全不清楚
标签: c# arrays string linq substring