【发布时间】:2021-01-04 14:50:43
【问题描述】:
class Program
{
public static bool Like(string toSearch,string toFind)
{
if (toSearch.Contains(toFind))
return true;
else
return false;
}
static void Main(string[] args)
{
List<string> str = new List<string>();
List<string> strNew = new List<string>();
str.Add("abdecacd");
str.Add("facdgh");
str.Add("iabcacdjk");
str.Add("lmn");
str.Add("opqe");
str.Add("acbd");
str.Add("efgh");
string strToSearch= "acd,abc,abcacd,al";
string[] desc = strToSearch.Split(',');
for(int i = 0; i < str.Count; i++)
{
for(int j = 0; j < desc.Length; j++)
{
if(Like(str[i].ToString(),desc[j].ToString()))
{
strNew.Add(str[i].ToString());
break;
}
}
}
if(strNew != null)
{
foreach(string strPrint in strNew)
{
Console.WriteLine(strPrint);
}
}
}
}
如何为上述代码编写一个 linq 查询,在这个 strToSearch 变量值将是动态的,用户将输入逗号分隔值,用户可以输入任意数量的逗号分隔值,我想编写一个 linq 查询,它将查找 List 中包含用户输入的值的所有值。 我需要 linq 查询的原因,因为我的应用程序中使用了 linq。请帮我解决这个问题。
【问题讨论】:
-
这里有个bug
strNew总是不为空 -
而
ToString()在字符串上是无操作的 -
不要做
if (pred) return true; else return false;做return pred;
标签: c# linq linq-to-sql linq-to-entities