2

背景:文字列を保持する 2 つのリストがあります。リストaとリストb。現時点では、Excel スプレッドシートのリスト a の値を列 A に書き込み、リスト b の値を列に書き込みます。リスト b は、リスト a と同じデータを持ち、連続している必要があります。これは必ずしもそうではありません。

問題:リスト b の値を Excel に書き込むとき、同じポイントのリスト a にある場合はセルに値を書き込みたい、そうでない場合はセルに空の文字列を書き込みたい。

編集:返信と回答に感謝します。私が本当に必要としているのは次のとおりです。

2 つのリストが次の場合:

a = {"a", "b", "c", "d", "e" }
b = {"a", "d", "e" }

操作の結果は次のようになります。

{ "a", "", "", "d", "e" }
4

3 に答える 3

1
int max = aList.Count > bList.Count ? aList.Count : bList.Count;
for(int i = 0; i < max; ++i)
{
    if(i < aList.Count)
        Write(aList[i]);

    if(i < bList.Count)
    {
        if(i < aList.Count)
            Write(aList[i] == bList[i] ? bList[i] : "");
        else
            Write(bList[i]);
    }
}

Writeこれは、スプレッドシートに実際にデータを書き込むことを前提としています。

于 2013-04-26T07:50:32.533 に答える
0

これを試して:

class Program
{
    static void Main(string[] args)
    {
        List<string> listA = new List<string>() { "a", "b", "c" };
        List<string> listB = new List<string>() { "a", "c", "b" };

        var result = listB.Select((b, index) =>
            (index == listA.IndexOf(b)) ? b : "");
    }
}
于 2013-04-26T07:53:21.717 に答える