[英]How do I marshal wchar_t* from C++ to C# as an out parameter or return value?
[英]How do i return a value from LINQ into a parameter? C#
于是就有了这个方法:
public void Method(A a, B b)
{
OtherMethod(a, a.list.ForEach(o => {if(o.Status == Good){ return o};), b)
}
OtherMethod()
需要 3 个参数。 我希望那个o
放入参数,但我不知道如何。 有人知道怎么做吗?
实际代码:
public void AddProduct(UserDTO u, ProductDTO p)
{
if(CheckForCurrentOrder(u) != 0) //returns ID of order with status = "NotPaid"
{
CreateEmptyOrder(u);
SetProductInOrder(u, u.Orders.ForEach(o => { if (o.Status == EnumsDTO.OrderStatus.NotPaid) { return o}; }), p);
}
//rest of database code thats not relevant..
}
尝试通过Where()
获取您想要的值并通过FirstOrDefault()
方法获取它:
var o = a.list.Where(o => o.Status == Good)).FirstOrDefault();
if (o != null) {
OtherMethod(a, o, b)
}
您可以使用 Linq 的First()
(或类似)方法:
OtherMethod(a, a.list.First(o => o.Status == Good), b)
First
将在a.list
中找到与条件o.Status == Good
匹配的第一个项目(如果没有项目匹配此条件,则会抛出异常)。 您可能希望使用FirstOrDefault
代替,如果没有项目匹配此条件,则返回默认值, Single
可确保只有单个项目匹配此条件。
假设在这里您想在“OtherMethod()”中将“o”作为参数传递,您可以创建一个新列表为
List<string> c = new List<string>();
然后根据逻辑将o的值添加到列表c中。
c.Add()
//pass c as parameter to method
OtherMethod(a, c, b);
希望能帮助到你
这也值得一试,它检查所有对象,并相应地执行它们
u.Orders.Where(o => o.Status == EnumsDTO.OrderStatus.NotPaid)
.Select(o => OtherMethod(a, o, b));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.