gpt4 book ai didi

c# - 替代 foreach 循环和字符串生成器

转载 作者:太空狗 更新时间:2023-10-29 21:43:45 25 4
gpt4 key购买 nike

我有一个获取实体集合的函数,然后将引号和逗号附加到字符串以更新数据库中的集合。这花费了大量的时间,效率非常低,但我想不出替代方案:

IEntityCollection c = Transactions.EvalToEntityCollection<ITransactions>(Store, key, item);

int max = transes.Count <= 750 ? transes.Count : 750; // DB times out if there are more than 750, so 750 is the limit
int i = 0;
int t = transes.Count;
StringBuilder sb = new StringBuilder();

foreach (ITransactions trans in transes)
{
sb.Append("'");
sb.Append(trans.GUID);
sb.Append("',");
i++;
t--;

if (i == max || t == 0)
{
sb.Remove(sb.Length - 1, 1);

//in here, code updates a bunch of transactions (if <=750 transaction)

i = 0;
sb = new StringBuilder();
}
}

最佳答案

也许是这样的?

var str = String.Join(",", transes.Select(t => string.Format("'{0}'", t.GUID)))

但由于您的代码中有注释显示 > 750 记录超时,您的“疯狂时间”可能来自数据库,而不是您的代码。

String.Join当您想将一个列表连接在一起时,这是一个非常方便的方法,因为它会自动为您处理结尾(因此您不会以前导或尾随定界符结束)。

关于c# - 替代 foreach 循环和字符串生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35016062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com