C#是否可以创建动态StringBuilder数组?
我试图在C#中动态创建StringBuilder数组,但运气不太好 我想根据给定的客户端数字向StringBuilder(sb)添加信息,该数字将根据我可能拥有的客户端数量动态变化。我可能有2个或20个。在我的程序中,sb将用于构建基于每个客户端的报告 例如,我有以下3个客户端:C#是否可以创建动态StringBuilder数组?,c#,arrays,visual-studio-2010,c#-4.0,stringbuilder,C#,Arrays,Visual Studio 2010,C# 4.0,Stringbuilder,我试图在C#中动态创建StringBuilder数组,但运气不太好 我想根据给定的客户端数字向StringBuilder(sb)添加信息,该数字将根据我可能拥有的客户端数量动态变化。我可能有2个或20个。在我的程序中,sb将用于构建基于每个客户端的报告 例如,我有以下3个客户端: Client A = 0 Client B = 1 Client C = 2 如果客户A报告他有8个苹果,我想将字符串“8个苹果”添加到sb[0] 如果客户B报告他有3个橙子,我想将字符串“
Client A = 0
Client B = 1
Client C = 2
如果客户A报告他有8个苹果,我想将字符串“8个苹果”添加到sb[0]
如果客户B报告他有3个橙子,我想将字符串“3个橙子”添加到sb[1]
以上只是我试图实现的想法的一个简单例子。实际上,我将向sb添加很多信息
我尝试了以下几点,但没能让他们按照我预期或想要的方式工作
StringBuilder[] sbFileError = new StringBuilder[clientCount];
List<StringBuilder> sbFileError = new List<StringBuilder>();
StringBuilder[]sbFileError=新的StringBuilder[clientCount];
List sbFileError=新列表();
有什么想法吗?是否可以创建StringBuilder数组
谢谢 您已经创建了上面的容器,但是您需要用一些东西填充它们。例如:
StringBuilder[] sbFileError = new StringBuilder[clientCount];
for (int ix = 0; ix < clientCount; ++ix)
sbFileError[ix] = new StringBuilder();
StringBuilder[]sbFileError=新的StringBuilder[clientCount];
对于(int ix=0;ix
或
List sbFileError=new List();
对于(int ix=0;ix
List sbFileError=new List();
看起来还可以,但您必须填充它:
for (int i = 0; i < numClients; i++)
sbFileError.Add(new StringBuilder());
for(int i=0;i
创建阵列是第一步,但这只会创建存储StringBuilder的位置。此时您还没有实际实例化任何StringBuilder。你需要这样做
StringBuilder[] sbFileError = new StringBuilder[clientCount];
for (int i = 0; i < sbFileError.Length; i++)
sbFileError[i] = new StringBuilder();
StringBuilder[]sbFileError=新的StringBuilder[clientCount];
for(int i=0;i
我认为您缺少数组元素的实例化。
这个代码有效
int clientCount = 3;
StringBuilder[] sbFileError = new StringBuilder[clientCount];
for(int i=0; i<clientCount; i++)
{
sbFileError[i] = new StringBuilder();
}
sbFileError[1].Append("Hello World!");
int clientCount=3;
StringBuilder[]sbFileError=新建StringBuilder[clientCount];
对于(int i=0;i你也可以想象:
var items = Enumerable.Range(0, clientCount)
.Select(i => new StringBuilder());
var list = new List<StringBuilder>(items);
只是篮子里的另一个鸡蛋。你走对了方向。为什么这对你不起作用?“我尝试了以下方法,但没有太多运气让他们按照我期望或想要的方式工作。”解释“没有太多运气”以及你“期望”和“想要”的内容。为什么是数组?一个更好的解决方案可能是使用具有唯一客户端标识符的字典作为键,使用StringBuilder作为值。在某种程度上,您甚至可以使用字典来模拟您的数组解决方案。@KirkWoll它可能会根据它的运行方式工作,我甚至没有意识到我没有正确初始化它。谢谢,我会我没有意识到我没有正确地初始化它。这已经是漫长的一天了。我没有发现关于使用字符串生成器数组的太多内容,只是想这可能是不可能的。这就是我们在这里为buzzzzjay做的:-)非常感谢。我喜欢所有的系统程序员。:)sbFileError.Ass是打字错误吗?
int clientCount = 3;
StringBuilder[] sbFileError = new StringBuilder[clientCount];
for(int i=0; i<clientCount; i++)
{
sbFileError[i] = new StringBuilder();
}
sbFileError[1].Append("Hello World!");
var items = Enumerable.Range(0, clientCount)
.Select(i => new StringBuilder());
var list = new List<StringBuilder>(items);
var list = Enumerable.Range(0, clientCount)
.Select(i => new StringBuilder())
.ToList();