C# 是什么导致从void类型到List类型的隐式转换错误<;T>;?

C# 是什么导致从void类型到List类型的隐式转换错误<;T>;?,c#,.net,list,generics,C#,.net,List,Generics,我编写了以下代码: public List<Card> DealCards(int numCardsToDeal) { return shuffle.RemoveRange(0,numCardsToDeal-1); } private List<Card> shuffle = new List<Card>() // class property deceleration. public List DealCard

我编写了以下代码:

public List<Card> DealCards(int numCardsToDeal) {
            return shuffle.RemoveRange(0,numCardsToDeal-1);

        }

private List<Card> shuffle = new List<Card>() // class property deceleration. 
public List DealCards(int numCardsToDeal){
返回shuffle.RemoveRange(0,numCardsToDeal-1);
}
private List shuffle=new List()//类属性。
但它会产生以下错误:

无法将类型“void”隐式转换为“System.Collections.Generic.List”

我不明白为什么。当我返回shuffle时,它就工作了。为什么这样可以解决问题?

修改列表,不返回任何内容-因此
无效。这与许多返回新列表的列表方法不同

下面的代码用于删除卡,然后返回列表:

public List<Card> DealCards(int numCardsToDeal)
{
    shuffle.RemoveRange(0,numCardsToDeal-1);
    return shuffle;
}
public List DealCards(int numCardsToDeal)
{
shuffle.RemoveRange(0,numCardsToDeal-1);
返回洗牌;
}
如果
shuffle
实际上是一个全局变量,您甚至不需要返回任何内容。

修改列表,不返回任何内容-因此
无效。这与许多返回新列表的列表方法不同

下面的代码用于删除卡,然后返回列表:

public List<Card> DealCards(int numCardsToDeal)
{
    shuffle.RemoveRange(0,numCardsToDeal-1);
    return shuffle;
}
public List DealCards(int numCardsToDeal)
{
shuffle.RemoveRange(0,numCardsToDeal-1);
返回洗牌;
}
如果shuffle实际上是一个全局变量,您甚至不需要返回任何东西。

不返回值,其返回类型为
void
。它将从列表中删除指定范围的元素。它不会返回修改后的列表,也不会返回包含已删除对象的列表

因此,尝试返回
RemoveRange
方法的结果会产生错误,因为您无法从本应返回
列表的函数返回
void

您需要将代码分成两行:

public List<Card> DealCards(int numCardsToDeal)
{
    // First, remove the range of cards from the deck.
    shuffle.RemoveRange(0,numCardsToDeal-1);

    // Then, return the modified list.
    return shuffle;
}
public List DealCards(int numCardsToDeal)
{
//首先,从牌组中移除牌的范围。
shuffle.RemoveRange(0,numCardsToDeal-1);
//然后,返回修改后的列表。
返回洗牌;
}
不返回值,其返回类型为
void
。它将从列表中删除指定范围的元素。它不会返回修改后的列表,也不会返回包含已删除对象的列表

因此,尝试返回
RemoveRange
方法的结果会产生错误,因为您无法从本应返回
列表的函数返回
void

您需要将代码分成两行:

public List<Card> DealCards(int numCardsToDeal)
{
    // First, remove the range of cards from the deck.
    shuffle.RemoveRange(0,numCardsToDeal-1);

    // Then, return the modified list.
    return shuffle;
}
public List DealCards(int numCardsToDeal)
{
//首先,从牌组中移除牌的范围。
shuffle.RemoveRange(0,numCardsToDeal-1);
//然后,返回修改后的列表。
返回洗牌;
}

可能是因为您的卡类未实现IEnumerbale属性……可能是因为您的卡类未实现IEnumerbale属性。。。。。。