我有一个包含三个元素的数组
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]替换一个?
所有这些当然都在一个循环和其他代码中,但我不认为它真的会增加问题所以我把它遗漏了。
答案 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])