第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

類索引器設(shè)計(jì)以訪問類中的所有數(shù)組

類索引器設(shè)計(jì)以訪問類中的所有數(shù)組

C#
飲歌長(zhǎng)嘯 2022-01-09 16:14:39
我有一個(gè)需要存儲(chǔ)值列表的場(chǎng)景,例如:id、姓名、部門、手機(jī)號(hào)碼等我目前使用的方法是存儲(chǔ)在 DataTable 中,通過行號(hào)訪問并進(jìn)行修改。有沒有辦法可以創(chuàng)建一個(gè)包含所有這些屬性并通過索引器訪問的類?像下面這樣的東西class Person{  public int[] id{get;set;}  public string[] Name{get; set;}  //your suggestion for indexer is required here  public <some type> this[int index]  {   //get/set logic to retrieve/modify a users input ->so that the following is achieved   //some thing like Person P=new Person(); now I should be able to do modifications like P[0].Name="New Name" or should retrieve data like P[0].Name,P[0].Id could be done  }    }注意:所有數(shù)組都將具有相同的長(zhǎng)度。
查看完整描述

2 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

您可以使用另一個(gè)具有 Person 列表和返回 person 實(shí)例的索引器的類。


public class Program

{

    public static void Main()

    {

      Persons pp=new Persons();

      Person p=new Person() { id=1, Name="test"};

      Person p1=new Person() { id=2, Name="test1"};

      pp.PersonsList.Add(p);

      pp.PersonsList.Add(p1);


      pp[1]=new Person(){id=3,Name="tye"};

      Console.WriteLine(pp[1].Name);

   }

 }



 class Person

 {


  public int id {get;set;}

  public string   Name {get; set;}


 }


 class Persons

 {

   public Persons()

   {

       PersonsList=new List<Person>();

   }

   public List<Person> PersonsList {get;set;}

   public Person this[int index]

   {

     get {  return PersonsList[index];  }

     set { 

         PersonsList[index].id=value.id;

         PersonsList[index].Name=value.Name;

         }

   }

 }


查看完整回答
反對(duì) 回復(fù) 2022-01-09
?
達(dá)令說(shuō)

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以返回一個(gè)中間類型。但是我不建議這樣做。您的“并行數(shù)組”方法通常表示缺少類型,并被視為代碼異味。我建議您創(chuàng)建一個(gè)具有 Id 和 name 屬性的類(或者可能是一個(gè)嚴(yán)格的,具體取決于您的用例)。并將該類的實(shí)例存儲(chǔ)在數(shù)組或其他集合類型中。


如果你采用中間方法,你可以做這樣的事情


struct PersonEntry

{

    private readonly Person _person;

    private readonly int _index;


    public PersonEntry(Person person, int index)

    {

        _person = person;

        _index = index;

    }


    public int Id

    {

        get => _person.id[ _index];

        set => _person.id[ _index] = value;

    }


    public int Name

    {

        get => _person.Name[ _index];

        set => _person.Name[ _index] = value;

    }

}


PersonEntry this[int index]

{

    get => new PersonEntry(this, index);

}

使用這種方法,您可以更改名稱和 ID。


我推薦的解決方案是:


class Person

{

    public int Id {get; set;}

    public string Name {get; set;}

}


Person[] persons;


查看完整回答
反對(duì) 回復(fù) 2022-01-09
  • 2 回答
  • 0 關(guān)注
  • 185 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)