这是我的问题的细分版本:
我有一个方法。参数是整数列表。我希望创建一个优化的 SQL 查询,该查询在该行的 id 等于参数列表中的整数之一的所有行上返回一个特定值。很简单,对吧?
我有一种感觉,我让它变得比需要的更困难:
private List<string> ReturnValue(List<int> ids)
{
List<string> ValuesIWantToReturn = new List<string>();
StringBuilder sb = new StringBuilder("SELECT ValueIWantToReturnfrom table WHERE ");
foreach (int id in ids)
{
sb.Append( string.Format("ID = {0} OR ", id) );
}
sb.Remove(sb.Length - 3, 3); //remove trailing "OR"
sb.Append(";");
SqlDataReader reader = RunSelectQuery( sb.ToString() );
while (reader.Read())
{
ValuesIWantToReturn.Add(reader.GetString(0));
}
return ValuesIWantToReturn;
}
任何关于我的代码的一般可读性和结构的反馈也将不胜感激。改进总是很好的:)