gpt4 book ai didi

c# - 如何在使用 LINQ C# 创建新对象时访问内部属性?

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:11 25 4
gpt4 key购买 nike

我有一个模型类名person

public class person
{
public string Name { get; set; }
public string[] cars { get; set; }
public int NoOfCars { get; set; }
}

我有一个 ObservableCollection,即 PersonsList。现在我要初始化 ObservableCollection

person pItem = new person
{
Name = "Sakthi",
cars = new string[] { "Honda City", "Maruthi Ciaz" },
NoOfCars = cars.Count()
}

ObservableCollection<person> PersonsList = new ObservableCollection<person>();
PersonsList.Add(pItem);

在这里,我需要从 cars 属性中分配 NoOfCars,而无需手动将值指定为 2 或使用外部字符串 [] 变量明确地。我需要使用 LINQ C# 隐式内联解决方案

最佳答案

您可以将逻辑添加到属性本身:

public class Person
{
public string Name { get; set; }
public string[] Cars { get; set; }
public int NoOfCars { get { return Cars == null ? 0 : Cars.Length; } }
}

无需提供 setter。

旁注:您应该遵循 .NET Capitalization Conventions .


如果您不能修改该类并且您需要内联它(为什么要这么做?),您就不能从对象初始值设定项中访问其他属性,因为该对象尚未完全初始化。所以这是不允许的。

为什么不能将数组存储在变量中?

string[] myCars= { "Honda City", "Maruthi Ciaz" };
person pItem = new person
{
Name = "Sakthi",
cars = myCars,
NoOfCars = myCars.Length
}

关于c# - 如何在使用 LINQ C# 创建新对象时访问内部属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34875314/

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