これが私の問題の内訳です:
方法があります。引数は整数のリストです。その行のIDが引数リストの整数の1つと等しいすべての行で特定の値を返す、最適化されたSQLクエリを作成したいと思います。シンプルでしょ?
必要以上に難しくしたような気がします:
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;
}
私のコードの一般的な可読性と構造に関するフィードバックもいただければ幸いです。改善するのはいつでもいいです:)