c# - 通过使用 linq 将对象列表转换为字符串和 int 数组来创建对象
问题描述
我正在尝试从数据库中选择列,然后为每列创建一个数组属性,并创建一个对象。
public class Activity
{
public string[] Quiz { get; set; }
public int[] CompletedCount { get; set; }
}
结果的数据库输出将返回为:
IQueryable<QuizCompletedCount> results = _logContext.QuizCompletedCounts;
我从数据库中获得了以下格式的值。
Week | Completed
---------------------------
Week 1 | 107
Week 2 | 104
Week 3 | 87
Week 4 | 49
Week 5 | 6
我试过这样:
List<int> activityCount = new List<int>();
List<string> activity = new List<string>();
foreach (var element in results)
{
activity.Add(element.Week);
activityCount.Add(element.Completed);
}
var obj = new QuizActivity();
obj.CompletedCount = activityCount.ToArray();
obj.Week = activity.ToArray();
所需的输出将如下所示:
string str = "{\"Week\":[\"Week 1\",\"Week 2\",\"Week 3\",\"Week 4\",\"Week 5\"],\"CompletedCount\":[107,104,87,49,6]}";
有没有linq
办法在不使用foreach
列表到数组的多次转换的情况下完成这项任务?
解决方案
你可以做这样的事情:
var result = new QuizActivity()
{
Week = results.Select(x => x.Week).ToList(),
CompletedCount = results.Select(x => x.Completed).ToList()
};
推荐阅读
- javascript - 在 TypeScript 中验证后对象可能是“未定义”
- express - 从 GraphQL 解析器设置 cookie
- java - 如何替换java中所有出现的特定子字符串?
- redis - 使用具有小值的大键的 REDIS 用例
- ios - 将 Any 转换为 RawRepresentable 其中 RawValue == String
- c++ - 如何获取 STL 容器列表中特定节点的地址?
- google-oauth - 带有 Angular/Java/dotNet 的 Google Photos REST API
- django - Django:django-tables2 在 DetailView 中只显示一行
- sql - 从 Postgresql 中 jsonb 字段内的数组中提取元素
- oauth - 如何使用 oAuth 和 MS Graph API 从服务登录到用户邮箱