与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]替换一?
所有这些当然都在循环和其他代码中,但我不认为它真正增加了问题,所以我把它省略了
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])