很难解释,但我会在我的代码中展示我想要的一个例子: 目前我这样做:
var something1 = new (Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet);
var something2 = new (Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet);
var something3 = new (Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet);
something1.Name = "sheet1";
something2.Name = "sheet2";
something3.Name = "sheet3";
我想在for-loop中制作那些var 这是我认为的应该是:
for (int i=1;i<4;i++)
{
var ("something" +i) = new Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet); // this (of course) doenst work
}
关于如何做到这一点的任何想法?
我尝试了这个,但它没有工作:
var something = new (Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1 , XlSheetType.xlWorksheet)[4];
答案 0 :(得分:7)
你可以使用字典
var somethigs = new Dictionary<int, xxx.ApplicationClass>();
for (var i = 1; i < 4; i++)
{
somethigs[i] = new xxx.ApplicationClass();
}
//access them like this
somethigs[1].Name = "sheet1";
somethigs[2].Name = "sheet2";
或使用像这样的数组
var somethigs = new xxx.ApplicationClass[4];
for (var i = 0; i < 4; i++)
{
somethigs[i] = new xxx.ApplicationClass();
}
somethigs[0].Name = "sheet1";
somethigs[1].Name = "sheet2";
请记住,数组的索引为零。
答案 1 :(得分:3)
如果您确切知道,您需要的实例数量,创建数组或类实例列表将完成您的工作。
如果你想要更复杂的东西,你也可以创建一个字典,在其中为每个类实例提供名称,这可以为你提供按名称排序的东西机制。
答案 2 :(得分:1)
<add name="worktimedbEntities" connectionString="metadata=res://*/Models.TimeModel.csdl|res://*/Models.TimeModel.ssdl|res://*/Models.TimeModel.msl;provider=MySql.Data.MySqlClient;provider connection string="Driver={MySQL ODBC 5.1 Driver};Server=some.server.address;Database=db_time;
User=nick;Password=i51948273;"" providerName="System.Data.EntityClient" />
</connectionStrings>
答案 3 :(得分:1)
你应该使用一个数组。在您的特定情况下,
var something = new xxx.ApplicationClass[4];
for (int i = 0; i < 3; i++)
{
something[i] = new (Microsoft.Office.Interop.Excel.Worksheet)appExcel.Worksheets.Add(Type.Missing, appExcel.Worksheets[appExcel.Worksheets.Count], 1, XlSheetType.xlWorksheet);
something[i].Name = "sheet" + (i + 1).ToString();
}
您应该查找有关它们如何工作的阵列的更多信息。请参阅示例https://msdn.microsoft.com/en-us/library/aa288453%28v=vs.71%29.aspx