Mam problem. W jaki sposób mógłbym stworzyć używając pętli 10 pustych list nazwanych kolejno: lista1, lista2, ... lista10?
0
2
Jak dla mnie to nie da się. Możesz co najwyżej użyć Dictionary<string, List<T>>
0
Nie da się, bo nazwy, które im nadajesz są dla Ciebie, w kodzie wynikowym ich nie ma.
To czego chciałbyś użyć i potrzebujesz to tablice.
1
var dic=new Dictionary<string, List<Typ>>();
for(int i=1;i<10;++i) dic["list"+i.ToString()]=new List<Typ>();
...
List<Typ> L=dic["list7"];
1
Wszystko się da zrobić pętlą.
using Microsoft.CSharp;
using System;
using System.CodeDom.Compiler;
using System.Text;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var options = new CompilerParameters();
options.GenerateExecutable = false;
options.GenerateInMemory = false;
var parameters = new CompilerParameters
{
GenerateExecutable = true,
OutputAssembly = "out.exe"
};
var sb = new StringBuilder();
for (int i = 1; i <= 10; i++)
{
sb.AppendLine($"var list{i} = new System.Collections.Generic.List<string>();");
}
var code = $"class Program {{ static void Main(string[] args) {{ {sb} }} }}";
var provider = new CSharpCodeProvider();
var compilerResult = provider.CompileAssemblyFromSource(parameters, code);
foreach (var error in compilerResult.Errors)
{
Console.WriteLine(error);
}
Console.ReadLine();
}
}
}
0
Wcale nie potrzebujesz pętli
var dict = Enumerable.Range(1, 10).ToDictionary(i => $"Lista{i}", new List<Typ>());
dict["Lista1"].Add(new Typ());
nie testowane.