3

こんにちは私は国、都市、通りを含むリストをC#で作成しようとしています。

最初に、SQLを使用して3つの異なるテーブルからデータをフェッチします。次に、次のようなリストが必要です。

   Germany
       Frankfurt
            Siemensweg 14
       Berlin
            Bernstr 4

   USA
        New York
            Atlstr.24
            Zumbastr. 45
   Turkey

これは私がこれまでに持っているものですが、期待どおりに機能していません:

public class iOrt
{
    public class ORT
    {
        public string RegionID { get; set; }
        public string RegionName { get; set; }
        public List<STADT> Stadt { get; set; }

    }

    public class STADT
    {
      public string Stadname { get; set; }
    }


    //SQL Verbindung wird ausgelesen
    protected static string GetConnectionString()
    {
        return ConfigurationManager.ConnectionStrings["Bookit"].ConnectionString;
    }

    internal static List<ORT> Ort()
    {
        List<ORT> ortObject = new List<ORT>();
        List<STADT> stadtObject = new List<STADT>();

        ortObject.Add(new ORT {
        RegionID="235",
        RegionName="deutschland",
        Stadt = stadtObject.Add(new STADT{

            Stadname="Frankfurt"})


        });

        return ortObject;

    }
4

6 に答える 6

3
public class Street
    {
        public string Name { get; set; }
    }

    public class City
    {
        public string Name { get; set; }
        public List<Street> Streets { get; set; }
    }

    public class Country
    {
        public string Name { get; set; }
        public List<City> Cities { get; set; }
    }

    public static List<Country> Ort()
        {
            List<Country> countries = new List<Country>();
            countries.Add(new Country()
            {
                Name = "Country1",
                Cities = new List<City>()
                {
                    new City()
                    {
                        Name="City1",
                        Streets=new List<Street>()
                        {
                            new Street()
                            {
                                Name="Street 1"
                            },
                            new Street()
                            {
                                Name="Street 2"
                            }
                        }
                    },
                    new City()
                    {
                        Name="City2",
                        Streets=new List<Street>()
                        {
                            new Street()
                            {
                                Name="Street 1"
                            },
                            new Street()
                            {
                                Name="Street 2"
                            }
                        }
                    }
                }
            });
            return countries;

        }
于 2013-03-26T10:28:20.753 に答える
2

国オブジェクトのリストを返します。国オブジェクトには、都市オブジェクトのリストが含まれています。Cityオブジェクトには、Addressオブジェクトなどのリストが含まれています。

于 2013-03-26T10:09:59.107 に答える
2

ここで別のクラスを作成する必要があります。国、都市、通りの3つのクラス(または構造によってはそれ以上)を作成する必要があります。国には都市のリストがあり、都市には通りのリストがあります。

public class Country
{
    public string Name { get; set; }
    public List<City> Cities { get; set; }
}

public class City
{
    public string Name { get; set; }
    public List<Street> Streets { get; set; }
}

public class Street
{
    public string Name { get; set; }
}
于 2013-03-26T10:10:55.063 に答える
2

オブジェクト初期化コードが正しくありません。する必要があります:

internal static List<ORT> Ort()
{
    List<ORT> ortObject = new List<ORT>();

    ortObject.Add(new ORT
                  {
                      RegionID="235",
                      RegionName="deutschland",
                      Stadt = new List<STADT>()
                      {
                          new STADT { Stadname="Frankfurt" }
                      }
                  });

    return ortObject;
}
于 2013-03-26T10:10:56.230 に答える
1

データを整理する必要があります。クラスを使ってみませんか。以下を検討してください

public class County
{
    public string Name{get;set;}
    public List<City> Cities{get;set;}
}

public class City
{
    public string Name{get;set;}
    public List<Region> {get;set;}
}

public class Region
{
   public string Name{get;set;}
   public int Code{get;set;}
}

そして、あなたは次のような方法を持つことができます

internal static List<Country> Ort()
{
   Country country = new Country();
   Country.Name="Germany";
   Country.Cities = new List<City>();  

   City city1 = new City();
   city1.Name="Frankfurt";
   city1.Regions = new List<Region>();

   Region region = new Region(); 
   region.Name = "Siemensweg";
   region.code = 14;

   city1.Regions.Add(region);

   region = new Region();
   region.Name = Bernstr;
   region.Code = 4;

   city1.Regions.Add(region);

   country.Cities.Add(city1);

   List<Country> countries = new List<Country>();
   countries.Add(country);

   return countries;   

   //or you can make your classes in a loop on a table row collection 

}
于 2013-03-26T10:09:52.117 に答える
1

私はあなたの構造が次のようになるべきだと思います:

public class Country {
      public string CountryName { get; set; }
      public List<CountryRegion> Regions { get; set; } 
}

pulic class CountryRegion 
{
     public string RegionName { get; set; }  
     public List<Area> Areas { get; set; }    
}

public class Area {
     public string AreaName { get; set; }
     public int Population { get; set; }

}

構造を取得するには:

Germany
   Frankfurt
        Siemensweg 14
   Berlin
        Bernstr 4

できるよ:

  var Germany = new Country();
  Germany.CountryName = "Germany";
  Germany.Regions = new List<CountryRegion>();

  var Siemensweg = new Area();
  Siemensweg.AreaName = "Siemensweg";
  Siemensweg.Population = 14;

  var Bernstr = new Area();
  Bernstr.AreaName = "Bernstr";
  Bernstr.Population = 4;

  Germany.Regions.Add(new CountryRegion { RegionName = "Siemensweg", new List<Area> { Siemensweg } });
  Germany.Regions.Add(new CountryRegion { RegionName = "Berlin", new List<Area> { Bernstr } });
于 2013-03-26T10:11:02.337 に答える