gpt4 book ai didi

foreach 中的 C# 语法不明确

转载 作者:行者123 更新时间:2023-11-30 20:23:35 24 4
gpt4 key购买 nike

我在 C# 项目的脚手架 View 中找到了这段代码,但我不太理解“列表”部分之后的语法。为什么在写ViewBag.data之前声明一个价格表?因为 ViewBag.Data 已经包含一个将价格转换为列表的查询,所以我不明白为什么会这样

@foreach (var x in ((List<WebCashRegister.Models.BLModels.Price>)ViewBag.data).Where(x => x.ProductId == item.Id).OrderByDescending(x => x.StartDate).Take(1))

这是完整的查询,但我的问题只是关于这部分:

List<WebCashRegister.Models.BLModels.Price>)ViewBag.data

这个语法是如何工作的?谢谢!

最佳答案

这告诉编译器 ViewBag.data , 这可以是任何东西,因为你可以把任何你想要的东西放在 ViewBag 中, 类型为 List<WebCashRegister.Models.BLModels.Price> .

这是一个显式转换的例子:

List<object> myList = new List<object>();
MyAunt terry = new MyAunt();
myList.Add(terry);

现在如果你有一个函数

public void Congratulate(MyAunt somebody)

那么你不能只调用

Congratulate(myList[0]);

因为编译器不知道它是正确的类型。所以你必须通过说来帮助编译器

Congratulate((MyAunt) myList[0]);

关于foreach 中的 C# 语法不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28559735/

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