1

「SeqID」という識別子で2つの配列を結合し、回答をCSVファイルに出力するプログラムに取り組んでいます。

この回答をファイルに出力するたびに、一連の行に対して同じ回答が出力され、最終的に次の回答に移動して、一連の行に対してそれが出力されます。ループに問題があるのではないかと思いますが、見当たりません。これがコードです...

    private void executeBtn_Click(object sender, EventArgs e)
    {
        //NET OIL VARIANCE MATHEMATICS
        if (netOilRadBtn.Checked)
        {
            using (var sw = new StreamWriter("testNetOil.csv"))
            {
                var items = netOil.Zip(seqNum, (oil, seq) => new { Oil = oil, Seq = seq });
                var items2 = netOil2.Zip(seqNum2, (oil, seq) => new { Oil = oil, Seq = seq });
                sw.WriteLine("Lease Name, Field Name, Reservoir, Operator, County, ST, Majo, Resv Cat, Discount Rate, Net Oil Interest, Net Gas Interest, Working Interest, Gross Wells, Ultimate Oil, Ultimate Gas, Gross Oil, Gross NGL, Gross Gas, Net Oil, Net Gas, Net NGL, Revenue To Int., Oper. Expense, Total Invest., Revenue Oil, Revenue Gas, Operating Profit, Revenue NGL, Disc Net Income, SEQ, Well ID, INC ASN, Life Years, Own Qual, Production Tax, NET OIL VARIANCE");

                foreach (var item in items.Join(items2, i => i.Seq, i => i.Seq, (a, b) => new
                {SeqID = a.Seq, Answer = this.GetTheAnswer(Convert.ToDouble(a.Oil), Convert.ToDouble(b.Oil)) 

                }))

                {
                    foreach (var s in item.SeqID)
                    {
                        sw.WriteLine(item.Answer);
                    }

基本的に、このコードで実現したいのは、2 つの異なる配列で一致する seqNum に対する 1 つの回答のみを出力することだけです。

4

1 に答える 1

2

foreach (var s in item.SeqID)

charのそれぞれをループしますSeqID。それが役に立つとは思えません。ループを削除して、 のみを実行しますsw.WriteLine(item.Answer)

于 2013-06-10T14:53:12.297 に答える