[英]Use of Unassigned Local Variable Error C# and LINQ
我正在尝试使用LINQ从使用SQLite制成的数据库中提取信息到列表中。 然后,我尝试使用从Windows Store应用程序页面上的两个文本框中输入的文本来搜索该列表。 尝试使用列表时,出现一条错误消息,指出“使用未分配的局部变量”。
private void button_LINQ_Click(object sender, RoutedEventArgs e)
{
List<Notes> manyNotes;
int cursorPosition = TextBox_Results.SelectionStart;
var x = (from n in manyNotes
where (n.Note.Contains(textBox1.Text) && n.Note.Contains(textBox2.Text))
select n).ToList();
TextBox_Results.Text = TextBox_Results.Text.Insert(cursorPosition, "Notes containing " + textBox1.Text + " and " + textBox2.Text + ":\n");
foreach (Notes y in x)
TextBox_Results.Text = TextBox_Results.Text.Insert(cursorPosition, y.Note + "\n");
}
您将manyNotes声明为一个List,但是永远不要用任何东西实例化它(即使是一个空的List)。 至少,您需要将列表的声明更改为:
List<Notes> manyNotes = new List<Notes>();
但是,除非我不遵循您的代码,否则您仍然需要添加代码以用数据填充manyNotes列表。 否则,用于实例化var x的查询将始终为空列表。 就像您要查询一个空表一样。 无论使用什么过滤,从0行集合中选择任何行组合都将始终返回0行。 说得通?
您的问题在这里:
List<Notes> manyNotes;
您永远不会初始化该变量,然后尝试在Linq查询中使用它。
您可以将其更改为
List<Notes> manyNotes = new List<Notes>();
但这仍将导致一个空列表(意味着x
也将为空),但是您的代码仍将运行。
您需要填充列表以使foreach
循环实际执行任何操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.