C# 如何测试分割字符测试以进行搜索?
我正在尝试创建select search以按名字或姓氏查找人员,但当用户键入search for name时,我遇到了几个情况C# 如何测试分割字符测试以进行搜索?,c#,string,linq,split,testcase,C#,String,Linq,Split,Testcase,我正在尝试创建select search以按名字或姓氏查找人员,但当用户键入search for name时,我遇到了几个情况 全名字符串,例如“john” 全名包含拆分字符“.”例如:john.dow 全名包含拆分字符“\”例如:john\u dow 全名包含拆分字符“”例如:john dow 我的问题是如果总是运行第一种情况,我的问题是如何使我的代码运行正确的情况 C# 代码有一些问题 第一个条件“!String.IsNullOrEmpty(query)”将强制任何非null或空查询值此时停
代码有一些问题
string query = "fulname_kkkkk";
// var result = from tableA in ContextDB.tblA
// join tableB in ContextDB.tblb tableA. ID equals tableB.ID
// select tableA;
//
//String.isNullOrEmpty(query)
if (!String.IsNullOrEmpty (query)) {
if (query.Contains (".")) {
Console.WriteLine ("Contains .");
// var names = fullName.Split ('.');
// string fName = names[0];
// string lName = names[1];
// result = result.where(p => p.FirstName.containe(fName) || p.LastName.containe(lName));
} else if (query.Contains ("_")) {
Console.WriteLine ("Contains _");
// var names = fullName.Split ('_');
// string fName = names[0];
// string lName = names[1];
// result = result.where(p => p.FirstName.containe(fName) || p.LastName.containe(lName));
} else if (query.Contains (" ")) {
Console.WriteLine ("Contains ");
//var names = fullName.Split ('_');
//string fName = names[0];
//string lName = names[1];
//result = result.where(p => p.FirstName.containe(fName) || p.LastName.containe(lName));
} else {
Console.WriteLine ("fullname ");
//result = result.where(p => p.FirstName.containe(query) || p.LastName.containe(query));
}
} else {
Console.WriteLine("Exiting program");
}
您可以使用正则表达式:
string str = "john_dow";
string[] names = Regex.Split(str, @"\p{P}|\s");
忍者总是使用正则表达式。。。所以得到一个并在单词边界上拆分。。。或者添加“拆分”以获取代码示例-。。。或者简单地在非字母上拆分-
Regex.split(“a,b,c”,@“[^a-z]”
string str = "john_dow";
string[] names = Regex.Split(str, @"\p{P}|\s");