C# 将类型的.NET4.0语法转换为.NET3.5
我有一个.NET 4.0代码:C# 将类型的.NET4.0语法转换为.NET3.5,c#,.net,excel,interop,C#,.net,Excel,Interop,我有一个.NET 4.0代码: var myTable = tables[1]; myTable = tables.Item["Table1"]; myTable = tables.OfType<Excel.ListObject>().FirstOrDefault(t => t.Name == "Table1"); var myTable=表[1]; myTable=表项[“表1”]; myTable=tables.OfType().FirstOrDefault(t=>t.N
var myTable = tables[1];
myTable = tables.Item["Table1"];
myTable = tables.OfType<Excel.ListObject>().FirstOrDefault(t => t.Name == "Table1");
var myTable=表[1];
myTable=表项[“表1”];
myTable=tables.OfType().FirstOrDefault(t=>t.Name==“Table1”);
我试图使用.NET 3.5进行编译,但遇到了一系列错误:
错误23属性、索引器或事件“项”不受支持
语言;尝试直接调用访问器方法
'Microsoft.Office.Interop.Excel.ListObjects.get_项(对象)'
及
错误24“Microsoft.Office.Interop.Excel.ListObjects”不包含
“OfType”的定义和最佳扩展方法重载
类型为(System.Linq.IQueryable)的System.Linq.Queryable
一些无效的参数
及
错误25实例参数:无法从转换
“Microsoft.Office.Interop.Excel.ListObjects”以
“System.Linq.IQueryable”
你能告诉我这些错误的确切含义吗?这样我就可以试着把它转换成.NET3.5了
非常感谢您的建议。这个问题指的是对以下问题的回答:;代码显示了在代码中访问表/列表对象的3种不同方式 这是我发布的代码:
var myTable = tables[1];
var myTable = tables.Item["Table1"];
var myTable = tables.OfType<Excel.ListObject>().FirstOrDefault(t => t.Name == "Table1");
没有简单的解决方法。ListObjects接口有点混乱,它的Item属性不是接口的默认属性。在MSDN文章中,默认名称为_default。C#版本3及更早版本仅支持一个索引器。ListObjects使用的是错误的。您必须显式使用get_Item(),正如错误消息所示。这打破了林克。
using Excel = Microsoft.Office.Interop.Excel;
private void TestButton_Click(object sender, RibbonControlEventArgs e)
{
var worksheet = (Excel.Worksheet) Globals.ThisAddIn.Application.ActiveSheet;
var tables = worksheet.ListObjects;
var table = tables.Item["Table1"]; // this is the line you are referring to
//do something with table
}