var pers = new List<Person> { new Person { username = "abc", age = 15 }, new Person { username = "def", age = 20 }, new Person { username = "eee", age = 25 } };
var p = from pe in pers where pe.age > 15 select pe;
foreach (var sele in p)
MessageBox.Show (sele .username);中提示:
错误 1 嵌入的语句不能是声明或标记语句
这是什么情况?
//测试没有发现问题
void Main()
{
var pers = new List<Person> { new Person { username = "abc", age = 15 }, new Person { username = "def", age = 20 }, new Person { username = "eee", age = 25 } };
var p = from pe in pers where pe.age > 15 select pe;
foreach (var sele in p)
Console.WriteLine(sele .username);/*
def
eee
*/}
class Person
{
public string username{get;set;}
public int age{get;set;}
}
MessageBox.Show (sele .username);
================
修改成:
foreach (var sele in p){
MessageBox.Show (sele .username);}
或p.ToList().ForEach(sele=>Console.WriteLine(sele .username));
var pers = new[]{
new { username = "abc", age = 15 },
new { username = "def", age = 20 },
new { username = "eee", age = 25 }
};
var p = from pe in pers where pe.age > 15 select pe;这样就行了,数组,为什么要用list,为什么还要加个名Person??
如果用匿名对象你就没必要去指定类。
var pers = new[]{
new { username = "abc", age = 15 },
new { username = "def", age = 20 },
new { username = "eee", age = 25 }
};这个var下面有红色的下划线,提示:嵌入的语句不能是声明或标记语句