我有一个数据列表,我想创建一个包含两列的数组,如 -
var array= dataList.Select(a => a.CustomerId, a.EmployerId).ToArray();
请建议在实体框架中制作两列或更多列的数组的正确方法。
更新
我也试过了。
var array= dataList.Select(a => new { a.CustomerId, a.EmployerId }).ToArray();
这给出如下结果
但我需要结果如下。
[0] 5145
[1] 5155
[2] 5146
[3] 5149
感谢。
答案 0 :(得分:2)
您应该使用Anonymous Types来实现此目的:
var array= dataList.Select(a => new {a.CustomerId, a.EmployerId}).ToArray();
或作为另一种解决方案创建一个类:
public class Person
{
public int CustomerId { get; set; }
public int EmployerId { get; set; }
}
然后:
var array= dataList.Select(a => new Person{ CustomerId = a.CustomerId, EmployerId = a.EmployerId}).ToArray();
根据您的编辑,您希望展平数组,因此您需要将Select
更改为SelectMany
,并将new
更改为new[]
,如下所示:< / p>
var array = dataList.SelectMany(a => new int[] { a.CustomerId, a.EmployerId}).ToArray();
答案 1 :(得分:2)
试试这个
[0] 5145
[1] 5155
[2] 5146
[3] 5149
这将为您提供如下结果
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.NO_CONTENT)
@Transactional(Transactional.TxType.REQUIRES_NEW)
public void deleteChecklist(@PathVariable("id") Long checklistId) throws ChecklistResourceNotFoundException {
Checklist checklist = RestPreconditions.checkFound(checklistRepository.findOne(checklistId));
checklistRepository.delete(checklist);
}
@Repository
public interface ChecklistRepository extends CrudRepository<Checklist, Long> {
}
答案 2 :(得分:0)
尝试使用动态
var array= dataList.Select(a => new { a.CustomerId, a.EmployerId }).ToArray();