与DataTable.Select()一起使用的复合格式字符串

时间:2013-03-11 22:45:22

标签: c# asp.net

我有一个包含三个元素的数组

string[] cat = new string[3] { "XBox360", "PS3", "Wii" };

然后我基本上比较了数组agianst DataTable并在某些条件下进行一些操作。 (我没写)执行匹配的代码是:

drResults = dtResults.Select(String.Format("Cat = '{0}' AND Cat_Entries = '{1}'", category, cat[i]));

类别(Cat)变量包含类别编号,Cat_Entries包含cat数组的元素。所以在代码中我执行操作,如果drResult.Lenght> 0

我不明白Format()中的代码是做什么的?我正在看Microsoft's definition但是让我失望的是“和”。大括号{}之间的数字就像一个顺序索引指示符,告诉运行时类别元素重新归零,而cat [i]替换一个?

所有这些当然都在一个循环和其他代码中,但我不认为它真的会增加问题所以我把它遗漏了。

1 个答案:

答案 0 :(得分:1)

Select方法接受一段SQL并返回匹配的行。在这种情况下,您正在寻找Cat field = '<category>' AND the Cat_Entries field = '<cat[i]>'

的行

格式化函数是创建字符串的更好方法,而不是

"Cat = '" + category + "' AND Cat_Entries = '" + cat[i] + '"因为后者更难阅读,并且由于必须创建多个临时字符串而可能更慢。

{0}和{1}只是代表您提供的变量的占位符,即。 类别 cat [i] 。您可以根据自己的喜好和任何顺序重复使用每次,例如。

是有效的(尽管很愚蠢)
String.Format("Cat_Entries = '{1}' AND Cat = '{0}' AND Cat = '{0}'", category, cat[i])