如何解决通过使用linq将对象列表转换为字符串和整数数组来创建对象
我试图从数据库中选择列,然后为每个列创建一个数组属性,并创建一个对象。
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()
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。