C# 对于每个匿名函数,can';不归

C# 对于每个匿名函数,can';不归,c#,.net,linq,C#,.net,Linq,我无法从ForEach返回,以下是我的代码: cards.ForEach(delegate(Card c){ if (c.GetFaceValue().ToString() == card) { return "Your Card has been located"; } 错误: 无法将匿名方法转换为委托类型“。因为块中的某些返回类型不能隐式转换为委托返回类型 以下操作也不起作用,因为CheckCard只能返回作废: cards.ForEach(CheckCa

我无法从ForEach返回,以下是我的代码:

cards.ForEach(delegate(Card c){
    if (c.GetFaceValue().ToString() == card) {
        return "Your Card has been located";
    }
错误:

无法将匿名方法转换为委托类型“。因为块中的某些返回类型不能隐式转换为委托返回类型

以下操作也不起作用,因为
CheckCard
只能返回作废:

 cards.ForEach(CheckCard);

 public string CheckCard(Card c) {
        if (c.GetFaceValue().ToString() == card) { // card = global 
            return "Your Card has been located";
        }
    }
错误:

“字符串SharedGamesClasses.Hand.CheckCard(SharedGamesClasses.Card)”的返回类型错误


ForEach有一个空值-不能返回值

操作是的代理快捷方式

public delegate void Action<in T>(
    T obj
)
公共委托无效操作(
T obj
)
注意这里的空白

public void ForEach(
行动
)

ForEach有一个空值-您不能返回值

操作是的代理快捷方式

public delegate void Action<in T>(
    T obj
)
公共委托无效操作(
T obj
)
注意这里的空白

public void ForEach(
行动
)

您当前正在尝试从匿名函数返回消息,而不是您的调用代码;这将不起作用,因为匿名函数是一个
操作
,它不能返回任何内容

是否只想查看
卡中的任何元素是否与
卡匹配,如果匹配,则返回消息

使用而不是
.ForEach()


您当前正在尝试从匿名函数返回消息,而不是您的调用代码;这将不起作用,因为匿名函数是一个
操作
,它不能返回任何内容

是否只想查看
卡中的任何元素是否与
卡匹配,如果匹配,则返回消息

使用而不是
.ForEach()


根据提供的逻辑,我想您只需要终止迭代,因为找到了
Card
。为此,只需使用一个简单的
foreach
,例如:

string SomeFunc(IEnumerable<Card> cards) 
{
  foreach(Card in cards)
  {
     if(c.GetFaceValue().ToString() == card) {
        return "Your Card has been located";
  }
}
string SomeFunc(IEnumerable卡)
{
foreach(卡片中的卡片)
{
如果(c.GetFaceValue().ToString()==卡){
返回“您的卡已找到”;
}
}

查看提供的逻辑,我想您只需终止迭代,因为找到了
卡。为此,只需使用一个简单的
foreach
,例如:

string SomeFunc(IEnumerable<Card> cards) 
{
  foreach(Card in cards)
  {
     if(c.GetFaceValue().ToString() == card) {
        return "Your Card has been located";
  }
}
string SomeFunc(IEnumerable卡)
{
foreach(卡片中的卡片)
{
如果(c.GetFaceValue().ToString()==卡){
返回“您的卡已找到”;
}
}

我想他需要的是所有,而不是任何谢谢!我是c#的新手,你能告诉我“c=>c.GetFaceValue().ToString()==card”是什么意思吗?或者这个概念叫什么,我可以查一下。哦,这是一种匿名委托的快捷语法。它与
委托(card c){返回c.GetFaceValue().ToString()相同==card;}
。我想他需要的是所有,而不是任何谢谢!我是c#的新手,你能告诉我'c=>c.GetFaceValue().ToString()==card'是什么意思吗?或者这个概念叫什么,我可以查一下。哦,这是一种匿名委托的快捷语法。它与
delegate(card c){return c.GetFaceValue().ToString()==card;}
。若要对某个对象执行foreach,您希望委托返回实现IEnumerable的对象。请考虑类似List.FindAll的对象。若要对某个对象执行foreach,您希望委托返回实现IEnumerable的对象。请考虑类似List.FindAll的对象。