一个人如何使用查询表达式风格的LINQ选择特定对象选择的对象?的LINQ:基于财产
private static ObservableCollection<Branch> _branches = new ObservableCollection<Branch>();
public static ObservableCollection<Branch> Branches
{
get { return _branches; }
}
static void Main(string[] args) {
_branches.Add(new Branch(0, "zero"));
_branches.Add(new Branch(1, "one"));
_branches.Add(new Branch(2, "two"));
string toSelect="one";
Branch theBranch = from i in Branches
let valueBranchName = i.branchName
where valueBranchName == toSelect
select i;
Console.WriteLine(theBranch.branchId);
Console.ReadLine();
} // end Main
public class Branch{
public int branchId;
public string branchName;
public Branch(int branchId, string branchName){
this.branchId=branchId;
this.branchName=branchName;
}
public override string ToString(){
return this.branchName;
}
}
返回以下错误:
Error 1 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<ConsoleApplication1.Program.Branch>' to 'ConsoleApplication1.Program.Branch'. An explicit conversion exists (are you missing a cast?) C:\Users\dotancohen\testSaveDatabase\ConsoleApplication1\ConsoleApplication1\Program.cs 35 12 ConsoleApplication1
然而,明确铸像这样:
Branch theBranch = (Branch) from i in Branches
let valueBranchName = i.branchName
where valueBranchName == toSelect
select i;
返回此错误:
Unable to cast object of type 'WhereSelectEnumerableIterator`2[<>f__AnonymousType0`2[ConsoleApplication1.Program+Branch,System.String],ConsoleApplication1.Program+Branch]' to type 'Branch'.
能的LINQ不会返回一个对象,或者我错过了什么obvi OU中?
谢谢。
谢谢你,现在该错误信息是很清楚,我明白为什么它被抛出! – dotancohen 2012-03-10 19:35:20