C#在字符串列表中匹配字符串的简洁方法
在SQL中,我可以编写:-C#在字符串列表中匹配字符串的简洁方法,c#,string,list,C#,String,List,在SQL中,我可以编写:- if (product_type in ('abc','def','ghi')) ... 我怎样才能用C#写一个同样简洁的“if”语句?我不想预先创建一个命名字符串列表变量。谢谢。您可以内联创建一个匿名集合,并对其执行与命名相同的方法调用 var product_type = "abc"; // Array var result = new [] {"abc", "def", "ghi"}.Contains(product_type); // result == t
if (product_type in ('abc','def','ghi')) ...
我怎样才能用C#写一个同样简洁的“if”语句?我不想预先创建一个命名字符串列表变量。谢谢。您可以内联创建一个匿名集合,并对其执行与命名相同的方法调用
var product_type = "abc";
// Array
var result = new [] {"abc", "def", "ghi"}.Contains(product_type); // result == true.
// List
var listResult = new List<string> {"abc", "def", "ghi"}.Contains(product_type);
var产品类型=“abc”;
//排列
var result=new[]{“abc”、“def”、“ghi”}.Contains(产品类型);//结果==真。
//名单
var listResult=新列表{“abc”、“def”、“ghi”}.Contains(产品类型);
要简化此操作,请使用此行
if (new[] {"abc", "def", "ghi"}.Contains(product_type)) //...
别忘了添加声明
using System.Linq;
…或者,您可以创建一个扩展,以使所有内容都具有
public static bool In<T>(this T obj, IEqualityComparer<T> comparer, params T[] list)
{
if (comparer == null)
return list.Contains(obj);
else
return list.Contains(obj, comparer);
}
public static bool In<T>(this T obj, params T[] list)
{
return In(obj, null, list);
}
我想出来了:-
if (new List<string> {"Fred", "Jim", "Harry"}.Contains("Jim"))
if(新列表{“Fred”、“Jim”、“Harry”}.Contains(“Jim”))
可能重复@Arturomenchaa我不认为这是一个直接重复,因为问题是如何在不将其分配给变量的情况下进行复制。谢谢Yvette。在我注意到有人回复之前,我发布了我的答案。
if (new List<string> {"Fred", "Jim", "Harry"}.Contains("Jim"))