如何组合相同的元素并在C#中的列表中求和它们的值

时间:2014-06-06 19:41:17

标签: c# list

我有两个大小相同的列表。第一个列表有一些标题,第二个列表也有第一个列表元素的值。例如;

var first = {"1", "saka", "2", "1", "1", "3", "saka", "1", "stack", "3"};
var second = {20,     23,  25,  30,  20,  15,     16,  61,      34,  35};

我想要2个新列表,其中包含与上述相同的元素及其总和。

var F = {"1", "saka", "2", "3", "stack"}
var S = {131,     39,  25,  50,      34}

我该怎么做?

1 个答案:

答案 0 :(得分:1)

 private void hereIsYourAnswer()
    {
        string [] first = { "1", "saka", "2", "1", "1", "3", "saka", "1", "stack", "3" };
        int [] second = { 20, 23, 25, 30, 20, 15, 16, 61, 34, 35 };

        List<String> F = new List<string>();
        List<int> S = new List<int>();

        for (int i = 0; i < first.Length; i++)
        {
            if (F.Contains(first[i]))
                S[F.IndexOf(first[i])] += second[i];
            else
            {
                F.Add(first[i]);
                S.Add(second[i]);
            }

        }

        for (int i = 0; i < S.Count; i++)
            MessageBox.Show(F[i] + " = " + S[i].ToString());

                //Output
                //1=131
                //saka=39
                //2=25
                //3=50
                //stack=34


    }