[英]IEnumerable <T> with anonymous methods
I dont know how to get rid of this error ? 我不知道如何摆脱这个错误?
Error 1 Using the generic type 'System.Collections.Generic.IEnumerable' requires 1 type arguments C:\\Users\\huzaifa.gain\\documents\\visual studio 2010\\Projects\\VendInvoiceImport\\VendInvoiceImport\\Program.cs 34 24 VendInvoiceImport 错误1使用通用类型'System.Collections.Generic.IEnumerable'需要1个类型参数C:\\ Users \\ huzaifa.gain \\ documents \\ visual studio 2010 \\ Projects \\ VendInvoiceImport \\ VendInvoiceImport \\ Program.cs 34 24 VendInvoiceImport
private static IEnumerable<string , string > DistinctInvoiceNumber(DataTable VendorInvoiceStagingTable)
{
var InvoiceLinecollection = VendorInvoiceStagingTable.AsEnumerable().Select(t => new { number = t.Field<string>(VendInvoice.Number),LineNumber = t.Field<string>(VendInvoice.LineNumber)}).Distinct();
return InvoiceLinecollection;
}
Your Linq query returns an sequence of anonymous type, but methods can't return anonymous types. 您的Linq查询返回一个匿名类型序列,但是方法不能返回匿名类型。 You have several options: 您有几种选择:
return an IEnumerable<Tuple<string, string>>
返回IEnumerable<Tuple<string, string>>
private static IEnumerable<Tuple<string, string>> DistinctInvoiceNumber(DataTable VendorInvoiceStagingTable) { var InvoiceLinecollection = VendorInvoiceStagingTable .AsEnumerable() .Select(t => Tuple.Create(t.Field<string>(VendInvoice.Number), t.Field<string>(VendInvoice.LineNumber))) .Distinct(); return InvoiceLinecollection; }
return a IDictionary<string, string>
as suggested in another answer (assuming your query doesn't return duplicate keys) 根据另一个答案的建议返回IDictionary<string, string>
(假设查询不返回重复的键)
private static IDictionary<string, string> DistinctInvoiceNumber(DataTable VendorInvoiceStagingTable) { var InvoiceLinecollection = VendorInvoiceStagingTable .AsEnumerable() .Select(t => Tuple.Create(t.Field<string>(VendInvoice.Number), t.Field<string>(VendInvoice.LineNumber))) .Distinct() .ToDictionary(t => t.Item1, t => t.Item2); return InvoiceLinecollection; }
create a class for this purpose with 2 string properties and return a sequence of that class 为此创建一个具有2个字符串属性的类,并返回该类的序列
private static IEnumerable<InvoiceLine> DistinctInvoiceNumber(DataTable VendorInvoiceStagingTable) { var InvoiceLinecollection = VendorInvoiceStagingTable .AsEnumerable() .Select(t => new InvoiceLine(t.Field<string>(VendInvoice.Number), t.Field<string>(VendInvoice.LineNumber))) .Distinct(); return InvoiceLinecollection; }
Why you do not use Dictionary<string, string>
instead? 为什么不使用Dictionary<string, string>
呢?
private static Dictionary<string , string > DistinctInvoiceNumber(DataTable VendorInvoiceStagingTable)
{
var InvoiceLinecollection = VendorInvoiceStagingTable.AsEnumerable().Select(t => new { number = t.Field<string>(VendInvoice.Number),LineNumber =
t.Field<string>(VendInvoice.LineNumber)}).ToDictionary();
return InvoiceLinecollection;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.