C# 创建要计数的多个stringbuilders WTR

C# 创建要计数的多个stringbuilders WTR,c#,stringbuilder,C#,Stringbuilder,如果我有一个计数,说item=5。我想生成5个字符串生成器对象。如何做到这一点 string[] features = UserBL.GetFeaturesByRole(Session["Role"].ToString().Trim()).TrimEnd(',').Split(','); 在功能中,我将拥有功能。因此,根据计数,我需要生成stringbuilder objs。为什么不根据计数创建一个数组呢 var builders = Enumerable.Range(0, count).Se

如果我有一个计数,说item=5。我想生成5个字符串生成器对象。如何做到这一点

string[] features = UserBL.GetFeaturesByRole(Session["Role"].ToString().Trim()).TrimEnd(',').Split(',');

在功能中,我将拥有功能。因此,根据计数,我需要生成stringbuilder objs。

为什么不根据计数创建一个数组呢

var builders = Enumerable.Range(0, count).Select(x => new StringBuilder()).ToArray();
然后你可以做第二个构建器

var builder = builders[1];

为什么不根据计数创建一个数组呢

var builders = Enumerable.Range(0, count).Select(x => new StringBuilder()).ToArray();
然后你可以做第二个构建器

var builder = builders[1];

为什么不根据计数创建一个数组呢

var builders = Enumerable.Range(0, count).Select(x => new StringBuilder()).ToArray();
然后你可以做第二个构建器

var builder = builders[1];

为什么不根据计数创建一个数组呢

var builders = Enumerable.Range(0, count).Select(x => new StringBuilder()).ToArray();
然后你可以做第二个构建器

var builder = builders[1];

在您的例子中:
features.Select(item=>newstringbuilder(item)).ToList()将为每个功能获取StringBuilder的集合,其中包含功能文本本身。使用default.ctor()创建空的StringBuilder。如果您想多次访问集合,则需要ToList(),因为如果没有ToList(),您将始终重复并因此重新创建新的StringBuilder。@eFloh他有
ToArray
,它可以像
ToList
一样高效地解析
可枚举的
,另外还有使
生成器不可变的好处。然而,+1表示他可以绕过
Enumerable.Range
业务,直接枚举他的
功能
字符串数组,初始化每个
StringBuilder
内联。@JohnCastleman关于数组/ToList的一个很好且有用的扩展。但是数组的大小是不变的,而不是内容。在这种情况下,作为局部变量,这应该不是问题。当构建器公开时,例如作为属性,如果需要防止这种“数组攻击”,我强烈建议使用
IReadOnlyCollection
)在您的例子中:
features.Select(item=>newstringbuilder(item)).ToList()将为每个功能获取StringBuilder的集合,其中包含功能文本本身。使用default.ctor()创建空的StringBuilder。如果您想多次访问集合,则需要ToList(),因为如果没有ToList(),您将始终重复并因此重新创建新的StringBuilder。@eFloh他有
ToArray
,它可以像
ToList
一样高效地解析
可枚举的
,另外还有使
生成器不可变的好处。然而,+1表示他可以绕过
Enumerable.Range
业务,直接枚举他的
功能
字符串数组,初始化每个
StringBuilder
内联。@JohnCastleman关于数组/ToList的一个很好且有用的扩展。但是数组的大小是不变的,而不是内容。在这种情况下,作为局部变量,这应该不是问题。当构建器公开时,例如作为属性,如果需要防止这种“数组攻击”,我强烈建议使用
IReadOnlyCollection
)在您的例子中:
features.Select(item=>newstringbuilder(item)).ToList()将为每个功能获取StringBuilder的集合,其中包含功能文本本身。使用default.ctor()创建空的StringBuilder。如果您想多次访问集合,则需要ToList(),因为如果没有ToList(),您将始终重复并因此重新创建新的StringBuilder。@eFloh他有
ToArray
,它可以像
ToList
一样高效地解析
可枚举的
,另外还有使
生成器不可变的好处。然而,+1表示他可以绕过
Enumerable.Range
业务,直接枚举他的
功能
字符串数组,初始化每个
StringBuilder
内联。@JohnCastleman关于数组/ToList的一个很好且有用的扩展。但是数组的大小是不变的,而不是内容。在这种情况下,作为局部变量,这应该不是问题。当构建器公开时,例如作为属性,如果需要防止这种“数组攻击”,我强烈建议使用
IReadOnlyCollection
)在您的例子中:
features.Select(item=>newstringbuilder(item)).ToList()将为每个功能获取StringBuilder的集合,其中包含功能文本本身。使用default.ctor()创建空的StringBuilder。如果您想多次访问集合,则需要ToList(),因为如果没有ToList(),您将始终重复并因此重新创建新的StringBuilder。@eFloh他有
ToArray
,它可以像
ToList
一样高效地解析
可枚举的
,另外还有使
生成器不可变的好处。然而,+1表示他可以绕过
Enumerable.Range
业务,直接枚举他的
功能
字符串数组,初始化每个
StringBuilder
内联。@JohnCastleman关于数组/ToList的一个很好且有用的扩展。但是数组的大小是不变的,而不是内容。在这种情况下,作为局部变量,这应该不是问题。当构建器公开时,例如作为属性,如果需要防止这种“数组攻击”,我强烈建议使用
IReadOnlyCollection