gpt4 book ai didi

c# - 将 LINQ 结果存储在全局变量中的最佳类型

转载 作者:行者123 更新时间:2023-11-30 21:13:50 25 4
gpt4 key购买 nike

我正在编写报告并使用 LINQ 加载数据以在报告加载后立即显示。

summaryData = from summary in _entity.Summary
// some constraints here
select new
{
summary.payment_category_desc,
summary.payment_due_amt,
summary.currency_desc
};

我需要稍后在不同的事件(PrintDetail)中使用这些结果,例如,我可以这样说:

string name = summaryData[currentIndex].payment_category_desc

基本上,我需要的是找出如何将 LINQ 结果存储在一个全局变量中,以便稍后枚举。我已经尝试过 IQueriable,但它不会让我这样做。我还试图避免必须创建一个包含三个成员的类才能使用 ToList()。

有什么想法吗?

最佳答案

编辑 老实说,我只是注意到您使用的是匿名类型。正如您现在已经知道的那样,您无法在方法之外获得匿名类型。但是,您可以使用 C# 4.0 元组<>

当 summaryData 在您当前的方法之外传递/定义时,以下将起作用:

summaryData = from summary in _entity.Summary
// some constraints here
select new Tuple<string, DateTime, decimal>
{
summary.payment_category_desc,
summary.payment_due_amt,
summary.currency_desc
};

不管是什么,如果是采集/查询结果,IEnumerable<T>会工作

请务必考虑是否需要使用 .ToList() 转换为列表(缓存结果)第一的。如果不这样做,原始枚举器将被执行多次,这可能是一个(性能)问题。考虑枚举器何时访问不再打开、可访问等的文件。

关于c# - 将 LINQ 结果存储在全局变量中的最佳类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6617040/

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