ParallelQuery怎样高效转换为List

System.Linq.ParallelQuery怎样高效转换为System.Collections.Generic.List呢?
就是说ParallelQuery<ClassTest> 转换为 List<ClassTest>
除了.ToList和foreach方法
...全文
225 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2011-03-14
  • 打赏
  • 举报
回复
er..
结论是什么?
shine_fly 2011-03-14
  • 打赏
  • 举报
回复
public static List<Model.ClientCompany> GetProjectClient(string ProjectID)
{
IEnumerable<Model.ProjectClientInfo> ie = lsProjectClientInfo.Where(
s => (
s.ProjectID == ProjectID
)
);

if (ie.Count() < 1) return null;

List<Model.ClientCompany> ms = new List<Model.ClientCompany>();
foreach (Model.ProjectClientInfo m in ie)
{
var t = lsClientCompany.Where(
s => (s.ClientCompanyID == m.ClientCompanyID)
);
if (t.Count() > 0)
{ ms.Add(t.ToList()[0]); }
}
return ms;
}
vrhero 2011-03-14
  • 打赏
  • 举报
回复
16G内存都可能不够的,你用啥都不高效...
兔子-顾问 2011-03-14
  • 打赏
  • 举报
回复
都是引用操作。怎么会这么久?
bloodish 2011-03-14
  • 打赏
  • 举报
回复
说一下问题的背景,问的比较模糊
q107770540 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 isline 的回复:]
就是说ParallelQuery<ClassTest> 转换为 List<ClassTest>
[/Quote]
你的需求是将ParallelQuery<ClassTest> 转换为 List<ClassTest>
不放在内存里放哪里?

数据量过大的话 考虑.skip()结合.take()方法每次只获取需要显示的部分数据。。
  • 打赏
  • 举报
回复
foreach或者forall将源复制到List中去会使内存加倍,我的机器只有16G,可能会不够
forall也试过,效果不是很理想,一句ToList方法运行了3天,现在还没结束~~
q107770540 2011-03-14
  • 打赏
  • 举报
回复
这是forall和forEach区别


q107770540 2011-03-14
  • 打赏
  • 举报
回复
try:
.ForAll()方法
对 source 中的每个元素并行调用指定的操作。

var > list= new List<ClassTest>();
var query =....;
query.ForAll((e) => list.Add(e));
http://msdn.microsoft.com/zh-cn/library/dd383744.aspx
threenewbee 2011-03-14
  • 打赏
  • 举报
回复
觉得 ToList 已经很高效了。

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧