【问题标题】:Assign byte or int to List<int> or byte C#将字节或 int 分配给 List<int> 或字节 C#
【发布时间】:2016-06-14 13:09:00
【问题描述】:
 var x1 = this.db.VW_Validation_Quantity.Where(x => x.partition_id == partitionId).ToList();

上面一行返回 1167 条记录。所有记录都将包含 claim_validation_test_id,我想将此 id 添加到List&lt;int&gt; or List&lt;byte&gt;,因此我使用创建了特定模型的匿名类型。

public class ValidationModel
{
 public List<byte?> claim_validation_test_id { get; set; }
}




List<ValidationModel> result1 = this.db.VW_Validation_Quantity.
Where(x => x.partition_id == partitionId)
.Select(y => new ValidationModel
 {
  claim_validation_test_id = new List<byte?>() { y.claim_validation_test_id },
 }).ToList();

两个 lamda 表达式将是相同的,唯一的区别是修改 test_id 字节类型并分配给 List。但第二次 lamda expession 返回 363 条记录。

第一个表达式给出 1167 条记录。 第二个表达式给出 363 条记录。

如果我通过正常的字节分配修改第二个表达式,那么它会给出 1167 条记录。即

List<ValidationModel> result1 = this.db.VW_Validation_Quantity.Where(x => x.partition_id == partitionId)
            .Select(y => new ValidationModel
        {
            testid =  y.claim_validation_test_id ,



        }).ToList();

我不确定同一张桌子的不同原因是什么。

【问题讨论】:

  • partitionId 在这两种情况下都是一样的,不是吗?
  • @valentin 是一样的

标签: c# linq c#-4.0 lambda c#-3.0


【解决方案1】:

我已经通过在 where 部分之后添加 ToList() 来修复它。我不确定问题是如何解决的,但是在将 ToList() 添加到 where 部分之后,它会返回所有 1167 条记录。

List<ValidationModel> result1 = this.db.VW_Validation_Quantity.
Where(x => x.partition_id == partitionId).ToList()
.Select(y => new ValidationModel
 {
  claim_validation_test_id = new List<byte?>() { y.claim_validation_test_id },
 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 2010-11-22
    • 2014-12-28
    • 2019-03-15
    • 1970-01-01
    • 2011-04-08
    • 2014-08-23
    相关资源
    最近更新 更多