c#我如何返回通用列表?

时间:2010-11-11 22:12:08

标签: c#

List<decimal> FindSumSubset(decimal sum, List<decimal> list)
        {
           for (int i = 0; i < list.Count; i++)
           {
              decimal value = list[i];
              if (sum - value == 0.0m)
              {
                  return new List<decimal> { value };
              }
              else
              {
                  var subset = FindSumSubset(sum - value, list.GetRange(i + 1, list.Count -i));
                  if (subset != null)
                  {
                      return subset.Add(value);


                  }
              }
           }
           return null;
        }

我在这一行收到错误:

 return subset.Add(value);

错误:

Error   1   Cannot implicitly convert type 'void' to 'System.Collections.Generic.List<decimal>'

任何人都知道如何解决这个&gt;?

3 个答案:

答案 0 :(得分:5)

subset.Add(value);
return subset;

您的问题与通用列表无关。 Add方法只更改列表,但返回void /不返回任何内容。因此,您需要使返回成为单独的语句,并且不能对方法调用进行链接。

答案 1 :(得分:2)

subset.Add不会返回您要添加元素的列表对象。它返回void,因为它只是工作。

执行:

subset.Add(value);
return subset;

答案 2 :(得分:1)

 if (subset != null)
                  {
                      subset.Add(value)
                      return subset;


                  }