-1

このクラスに書き込まれるリストが 1 つあります。

  public class keyfrs
{
     public keyfrs() { }
     public long regID { get; set; }
     public long ID { get; set; }
     public string county { get; set; }
     public string state { get; set; }
}
List<keyfrs> k = {1,2,3,4}] regID
                 {A,B,C,D}  ID

次のような別のリストクラスがあります。

 public class states
{
   public states() { }
   public long regID { get; set; }
   public string state { get; set; }
   public string county { get; set; }
}
List<states> s = {1,2,3,4}regID
                 {MA,NY,CT}state
                 {Suffolk,NY,Hampden}county

リストからの regID と一致する keyfrs リストに郡と州を書き込みたいとします。私のプログラムがこれまでに行ったことは、2 つのファイルを解析し、それぞれに対応する異なるクラス リストに書き込むことです。ご覧のとおり、両方のクラスに regID 列があります。私がする必要があるのは、regID で 2 つのリストを一致させ、郡と州を keyfrs リスト クラスに書き込み、そのリストを、これらの追加された列を含む新しいファイルに出力することです。

  static void Main(string[] args)
    {

        PARSEkeYfrs();
        parsestateFile();
        matchValues();
          outputFile();

    }
    private static void outputFile()
    {
        string filename = @"c:\keyswCounty.csv";

        using(StreamWriter write = new StreamWriter(filename))
        {
            write.WriteLine("RegIF"+","+"ID"+","+"County"+","+"State");
            foreach(keyfrs k in keysandID)
            {
                write.WriteLine(k.regID +"," +k.ID+","+k.county+","+k.state);
            }

        }
    }

    private static void matchValues()
    {
       foreach(keyfrs k in keysandID)
       {


       }
    }

    private static void parsestateFile()
    {
        int a = 0;
       string filename = @"c:\ALLStates.txt";
        using (StreamReader read = new StreamReader(filename))
        {              
                read.ReadLine();
                while (!read.EndOfStream)
                {
                    a++;
                    try{
                    string line = read.ReadLine();
                    string[] splitline = line.Split(',');
                    if(splitline[1]!="")
                    {
                        states s = new states();
                        s.regID = Convert.ToInt64(splitline[0]);
                        s.county = Convert.ToString(splitline[1]);
                        s.state = Convert.ToString(splitline[2]);
                        stateFile.Add(s);
                    }
                    }
                    catch(Exception ex)
                    {
                       string.Format("error:{0}" + ex.Message.ToString());
                    }

                }

            }
    }

    private static void PARSEkeYfrs()
    { int a = 0;
        string filename = @"c:\key_frs.csv";
        using (StreamReader read = new StreamReader(filename))
        {              
                read.ReadLine();
                while (!read.EndOfStream)
                {
                    try{
                        a++;
                    string line = read.ReadLine();
                    string[] splitline = line.Split(',');
                    if(splitline[1]!="")
                    {
                        keyfrs k = new keyfrs();
                        k.regID = Convert.ToInt64(splitline[0]);
                        k.ID = Convert.ToInt64(splitline[1]);
                        k.county = "";
                        k.state = "";
                        keysandID.Add(k);
                    }
                    }
                    catch(Exception ex)
                    {
                        string.Format("error:{0}"+ex.Message.ToString());
                    }

                }

            }


        }
4

1 に答える 1