该程序搜索所有设施编号,并通过此数字选择一个句子。如果他找到数字:"863790",那么他选择一个句子。如果他这样做,他必须删除此设施编号。这是我已有的代码
string[] lines = RichFacilityText.Lines;
for (int i = 0; i < lines.GetUpperBound(0); i++)
{
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string query1 = "SELECT TOP 1 * FROM SolozinnenTabel WHERE Faciliteitnummer= " + lines[i] + " AND Paragraaf LIKE '" + AlineaDesignNaam + "%' ORDER BY rnd(ID)";
command.CommandText = query1;
OleDbDataReader reader1 = command.ExecuteReader();
while (reader1.Read()) { RichAccoText.Text = RichAccoText.Text + reader1["Zin"].ToString() + ". ";
RichFacilityText.Lines = RichFacilityText.Lines.Where(lines => !lines[i]);
}
但它不起作用,因为我收到以下错误
无法在此作用域中声明名为 lines 的局部变量,因为它会赋予"lines"不同的含义,"lines"已在"父或当前"作用域中用于表示其他内容。
运算符 "!" 不能应用于类型为 'char' 的操作数
在此行RichFacilityText.Lines.Where(lines => !lines[i])
中,您有一个 lambda 表达式,该表达式使用名称行创建一个新的局部变量。该变量名称已在外部作用域中使用,并在此处定义: string[] lines = RichFacilityText.Lines;
这就是您收到第一个错误的原因。只需重命名两个变量之一,错误应该就消失了。
第二个错误也是因为 lambda 表达式 lines => !lines[i]
。变量行是一个字符串,lines[i]
将被计算为字符。未为数据类型 char 定义 !-运算符,因此会出现错误。