gpt4 book ai didi

c# - 如何从 List<> 填充 ObjectResult

转载 作者:行者123 更新时间:2023-11-30 15:40:42 26 4
gpt4 key购买 nike

为了测试使用存储过程的方法,创建了一个假方法。这个方法是返回一个整数列表。

像这样的……

    public virtual ObjectResult<Nullable<int>> available_IDs( ... )
{
List<int?> fakeAvailableIDList = new List<int?>();
fakeAvailableIDList.Add(1);
fakeAvailableIDList.Add(2);
fakeAvailableIDList.Add(3);

ObjectResult<Nullable<int>> result = fakeAvailableIDList.All(m => m > 0);
return result;
}

失败了

Cannot implicitly convert type 'bool' to 'System.Data.Objects.ObjectResult<int?>'

尝试过(除其他外)

ObjectResult<Nullable<int>> result = fakeAvailableIDList.All(m => m > 0);

给出

Cannot implicitly convert type 'System.Collections.Generic.List<int?>' to 'System.Data.Objects.ObjectResult<int?>'

如何将 List<> 放入 ObjectResult 中?

最佳答案

线

fakeAvailableIDList.All(m => m > 0);

返回一个 bool 值,因为 .All返回 TrueFalse取决于集合中的所有元素是否满足指定条件。

因此,类型为 ObjectResult 的变量不能设置为 Bool 类型的变量.

ObjectResultObjectResult<T>类型具有隐藏的构造函数,这意味着您不能随意创建实例。此外,ObjectResult<T>类型是密封的,这意味着它不能扩展。因此,如果您正在寻找一种创建 ObjectResult 的简单方法,您可能会倒霉。来自 Enumerable .

我认为,最简单的做法是更改您尝试测试的方法所使用的类型。因此,如果该方法具有签名:

void Foo(ObjectResult<int?> result);

将其更改为:

void Foo(IEnumerable<int?> result);

这将允许您创建一个可以用来测试该方法的假集合,并且您仍然可以将 ObjectContext<int?> 传递给该方法。输入因为 ObjectContext<int?>延伸IEnumerable<int?> .

关于c# - 如何从 List<> 填充 ObjectResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8931306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com