簡體   English   中英

在 C# .NET 中,當您知道對象的另一個屬性時,如何訪問該對象的另一個屬性?

[英]In C# .NET, how do you access a property of an object when you know another property of an object?

我有一個具有 2 個屬性的對象,我希望用戶根據名稱選擇對象,然后使用與對象關聯的速率進行計算,但是我也在“if”中使用計算中的名稱陳述。 我嘗試了幾件沒有奏效的事情,因為名稱在我的應用程序中間變為空。

首先,我嘗試使用多個值進行選擇列表,以便當用戶按名稱選擇對象時,將使用它選擇速率,但是遇到了它變為 null 的問題,我永遠無法弄清楚為什么所以我放棄了.

然后我嘗試做一個 switch 語句,它會根據名稱設置速率,但它會再次變為 null 並且不起作用,所以我在我的代碼中將其注釋掉。

現在,我將嘗試第三件事,我使用 name 屬性訪問 rate 屬性,但我不知道該怎么做。

對於代碼示例,這里是對象:

namespace MyCoolCalculator.MyCoolClasses
{
    public class County
    {
        public string CountyName { get; set; }
        public decimal CountyRate { get; set; }
        public County()
        {
        }
    }
    public static class CountyList
    {
        public static readonly List<County> Counties = new List<County>
        {
  new County {CountyName = "Cool County on the Shore", CountyRate = 0.0320M},

因此,如果我可以根據用戶從下拉列表中選擇它來獲取 CountyName,是否有辦法僅通過了解 CountyName 來訪問 CountyRate? 而且我確實意識到,如果我的第一個想法在選擇列表中有多個值的情況下起作用,那將會更加優雅: https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc。 selectlist?view=aspnet-mvc-5.2但它會變為空,因此它不適用於我的計算。

class Program
    {
        static void Main(string[] args)
        {
            //use linq to find the element that matches the property value
            County county = CountyList.countyList.FirstOrDefault(c => c.CountyName.Equals("shore"));
            Console.WriteLine(county);
           
        }
    }

    public class County
    {
        public string CountyName { get; set; }
        public decimal CountyRate { get; set; }
        public County()
        {
        }
    }
    public static class CountyList
    {
        public static readonly List<County> countyList = new List<County>()
        {
            new County { CountyName = "shore", CountyRate=0.0320M},
            new County { CountyName = "beach", CountyRate=0.0420M},
            new County { CountyName = "country", CountyRate=0.0520M},
        };
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM