首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在非常大的集合中更改值(10,000)

在非常大的集合中更改值(10,000)
EN

Stack Overflow用户
提问于 2012-03-28 20:28:17
回答 3查看 223关注 0票数 2

我正在导入一个非常大的文件(2-3 GB的文本)到一个集合,一次10,000。我需要将某些业务规则应用于集合中包含的值。最好的方法是什么?

最初的想法是创建一个自定义类的List<>,但它变得非常繁重。此外,我不确定如何有效地更改列表中的值。例如,对于列表中的所有项,如果属性x是"abc",我需要将其更改为"xyz“。

有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-28 20:31:17

使用List<T>应该是完全可以的。如果你只需要迭代,你可能会考虑使用LinkedList<T>,但我希望IO会让这里的其他一切都相形见绌。

至于你的改变:

代码语言:javascript
复制
foreach (var item in list)
{
    if (item.Property == "abc")
    {
        item.Property = "xyz";
    }
}

..。就像它读起来一样简单,国际海事组织。如果你真的想要,你可以使用List<T>.ForEach,或者LINQ --但是我通常不喜欢改变查询结果中的值,如果这会改变结果的话。例如:

代码语言:javascript
复制
// I dislike doing this, though it would work:
foreach (var item in list.Where(x => x.Property == "abc"))
{
    item.Property = "xyz";
}
票数 5
EN

Stack Overflow用户

发布于 2012-03-28 20:36:32

为什么不在将项放入集合之前从流中获取值时应用业务规则。

票数 3
EN

Stack Overflow用户

发布于 2012-03-28 20:48:04

我建议您使用内存中的数据库,这将帮助您有效地执行获取、更新操作。结果代码将更易于维护,因为您将使用声明性逻辑而不是命令式逻辑。如果这是你工作场所的一个项目,请这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9907496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档