前言
有的时候,我们需要把列表中包含有的值在数据库都查询出来。这时候数据库代码用到了in()这个caozuofu.html" target="_blank">操作符。
我们怎样把列表中的值处理成in()需要的格式。在实际的工作中就常用扩展方法来统一处理。
操作
第一,这里只是提供整数、字符串两种格式的扩展方法。
处理字符串的扩展方法,代码如下:
public static string ToStringList(this IEnumerable<string> listItems)
{
string strArray = "";
foreach (var item in listItems)
{
strArray += string.Format(",'{0}'", item);
}
if (strArray.Length > 0)
{
strArray = strArray.Substring(1);
}
return strArray;
}
处理整数的扩展方法,代码如下:
public static string ToStringList(this IEnumerable<int> listItems)
{
string strArray = "";
foreach (var item in listItems)
{
strArray += string.Format(",{0}", item);
}
if (strArray.Length > 0)
{
strArray = strArray.Substring(1);
}
return strArray;
}
第二,扩展方法以及实现,接下来定义一个List,代码如下:
List<Studens> list = new List<Studens>();
for (int i = 0; i < 10; i++)
{
Studens studens = new Studens()
{
Id=1+i,
Age = 23+i,
Name = "大侠"
};
list.Add(studens);
}
第三,实现,代码如下:
var age = list.Select(c => c.Age);
string strAge = age.ToStringList();//扩展方法ToStringList的用法
var name = list.Select(c => c.Name);
string strName = name.ToStringList();//扩展方法ToStringList的用法
注意
说到注意就一定得注意,不然就会吃苦。
注意:不能用参数化给in()操作符赋值,可以用字符串并接