实际上,我正在尝试按城市分组学生名单.当我执行此操作时,我在s2.City附近的LINQ语句中出现"对象引用"错误.
class Groupby
{
Student[] s = new Student[10];
public Groupby()
{
s[0] = new Student("Manikandan", "Jayagopi", "Chennai");
s[1] = new Student("Ganesh", "Bayyanna", "Bangalore");
s[2] = new Student("Laxman", "Bharghav", "Hyderabad");
s[3] = new Student("Dinesh","Vellaiyan","Pune");
s[4] = new Student("Natarajan","Nallathambi","Chennai");
}
public void Group()
{
var groupQuery = from s2 in s
group s2 by s2.City;
foreach (Student s1 in groupQuery)
Console.WriteLine(" {0}", s1.FirstName);
}
}
class Program
{
static void Main()
{
Groupby objGroupby = new Groupby();
objGroupby.Group();
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
谁能帮我吗?
提前致谢
你有一个10项的数组,只有初始化5.其他5个是null因为数组有固定的长度.这意味着s2.City会导致NullReferenceException.所以其中一个:
不要超大数组:
Student[] s = new Student[5];
Run Code Online (Sandbox Code Playgroud)使用a List<T>而不是数组:
List<Student> s = new List<Student>();
///
s.Add(new Student { ... }); // etc
Run Code Online (Sandbox Code Playgroud)检查null:
var groupQuery = from s2 in s
where s2 != null
group s2 by s2.City;
Run Code Online (Sandbox Code Playgroud)