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

本文关键字:复合 格式 字符串 结合 DataTable Select | 更新日期: 2023-09-27 18:03:37

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

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

然后我基本上将数组与DataTable进行比较,并在某些条件下进行一些操作。执行match的代码(不是我写的)是:

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

category (Cat)变量包含一个类别编号和Cat_Entries (Cat数组的元素)。所以在代码中,我执行操作,如果drResult。

我不明白的是Format()里面的代码是什么?我正在看微软的定义,但让我困惑的是"AND"。此外,花括号{}之间的数字是否像一个顺序索引指示符,告诉运行时类别元素替换零,而cat[i]替换一?

所有这些当然都在循环和其他代码中,但我不认为它真正增加了问题,所以我把它省略了

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

Select方法获取一段SQL并返回匹配的行。在本例中,您要寻找Cat field = '<category>' AND the Cat_Entries field = '<cat[i]>'

的行

使用Format函数创建字符串比使用

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

{0}和{1}只是占位符,表示您提供的变量。category and cat[i]。您可以按照自己的喜好以任意顺序重复使用它们。

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