如何在一个int数组中选择两列

时间:2017-01-24 12:08:01

标签: c# arrays .net entity-framework linq

我有一个数据列表,我想创建一个包含两列的数组,如 -

var array= dataList.Select(a => a.CustomerId, a.EmployerId).ToArray();

请建议在实体框架中制作两列或更多列的数组的正确方法。

更新

我也试过了。

var array= dataList.Select(a => new { a.CustomerId, a.EmployerId }).ToArray();

这给出如下结果

enter image description here

但我需要结果如下。

[0] 5145
[1] 5155
[2] 5146
[3] 5149

感谢。

3 个答案:

答案 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();