मैं c # में सूची () से वस्तुओं और उनकी गुणों को कैसे मुद्रित करूं?

तो मेरे पास इस तरह के कुछ वर्ग हैं:

class Travel
{
    private int id;
    private string name;
    private List<traveler> travelers;

    public int ID 
    { get{return id;}
      set{id = value;}
    }

    public string name {
        get { return name;}
        set { name= value; }
    }


    public Travel()
    {
        Travelers = new List<traveler>();
    }
}

तथा:

class Traveler
{
    private int passport_number;
    private string name;
    private string last_name;
    private List<travel> travels;

    public int Passport_number {
      get{return passport_number;}
      set{passport_number= value;}
    }

    public string Name {
        get { return Name;}
        set { Name = value; }
    }

    public string Last_name {
        get { return last_name;}
        set { last_name = value; }
    }

    public List<travel> Travel
    { get { return travel; }
      set { travel= value;}
    }

    public Traveler()
    {
        Travel= new List<travel>();
    }
}

और फिर मैं सरल बटन के साथ किसी प्रकार का फॉर्म बना देता हूं .. बटन के पीछे कोड भी सरल है:

private void button1_Click(object sender, EventArgs e)
    {
        using (IObjectContainer db = Db4oEmbedded.OpenFile("Travel_by_ship.db"))
        {
           //I'm creating new travel, and new traveler

            Travel t = new Travel();
            t.ID = 1;
            t.Name = "Cruising Nile river";

            Traveler tr = new Traveler();
            tr.Passport= 1;
            tr.Name = "John";
            tr.Last_name= "Locke";

           //Now I'm adding traveler to travel, and vice versa

            tr.Travels.Add(t);
            t.Travelers.Add(tr);

तो अब हम यात्री नाम और यात्री का अंतिम नाम प्रिंट कर रहे हैं:

MessageBox.Show(tr.Name + " " + tr.Last_name); 

लेकिन इस तरह काम नहीं करेगा क्योंकि यह एक सूची है:

MessageBox.Show(tr.Name + " " + tr.Travels.Name); 

And finally we come to the question.. What would be the code to print all travelers, in this case only traveler tr (with his properties), from travel t? Or just name of traveler and in same message box with name of travel on which he'll be going? How do we use object with their properties from List<>? I'm working in object oriented DB with C#.

0

3 उत्तर

प्रक्षेपण का प्रयोग करें:

List<travelers> travelers = new List<travelers>();
List travelerNames = travelers.Select(x => x.Name);

List<travel> travels = new List<travel>();
List travelNames = travels.Select(x => x.Name);

foreach(string name in travelerNames)
{
   //do something with names
    MessageBox.Show("Name: " + name); 
}
0
जोड़ा

पहली नज़र में मैं कहूंगा कि आपकी कक्षाओं में ToString() विधि को ओवरराइड करना सबसे आसान होगा

class Traveler
{
    ...

    public override string ToString()
    {
      return Name + " " + tr.Travels.Name;
    }
}
0
जोड़ा

खैर, आपको यात्रा की सूची के माध्यम से पुन: प्रयास करने की आवश्यकता है, क्योंकि प्रत्येक यात्रा का अपना नाम होता है। तो एक दिए गए यात्री के लिए ..

var theTraveller = someTraveller you have defined...

foreach(var travel in theTraveller.Travels)
{
    MessageBox.Show(theTraveller.Name + " " + travel.Name);
}

या रिवर्स मामले के लिए ..

  var theTravel = someTravel you have defined...

    foreach(var traveller in theTravel.Travellers)
    {
        MessageBox.Show(theTravel.Name + " " + traveller.Name);
    }
0
जोड़ा