gpt4 book ai didi

c# - 多次执行 .ToList() 是个坏主意吗?

转载 作者:行者123 更新时间:2023-11-30 14:47:36 27 4
gpt4 key购买 nike

我编写了以下函数来查询我的 Xamarin 表单应用程序中的 SQLite 数据库。但是,由于我必须调用 .ToList() 两次,所以我对此不是很有信心。这是糟糕的代码吗?任何反馈将不胜感激。

public static List<string> GetAllLocationIds()
{
try
{
lock (CollisionLock)
{
//TableQuery<TResult> First .ToList() result
//List<string> Second .ToList() result
return Database.Table<Location>().ToList().Select(loc=>loc.LocationId).ToList();
}
}
catch (Exception ex)
{
Insights.Report(ex);
return null;
}
}

直接在 Database.Table<Location>() 上执行 .Select导致以下异常。`

System.MissingMethodException: Default constructor not found for type 
System.String at System.RuntimeType.CreateInstanceMono`

最佳答案

是的。

开启

Database.Table<Location>().ToList()

您正在具体化所有表 Location .那么你只选择了LocationId在内存中。

改为使用:

Database.Table<Location>().Select(loc=>loc.LocationId).ToList();

直接在 IQueryable<Location> 上工作并且只实现 LocationId .假设 Table<Location>IQueryable<Location> .

关于c# - 多次执行 .ToList() 是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44350374/

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