You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#判断Enemy对象列表中是否包含指定字符串

判断Enemy对象列表中是否包含指定字符串的方法

嘿,作为C#新手能自己定义类并思考列表判断的问题已经很棒啦!我猜你是想检查列表里的Enemy对象的EName属性是否匹配某个指定字符串吧?毕竟列表里存的是Enemy实例,不是直接的字符串~下面给你两种常见的实现方式:

方法一:使用LINQ(简洁高效)

这是最常用的方式,不过记得要先引用System.Linq命名空间哦。

using System.Linq;

// 假设你的Enemy列表是这样定义的
List<Enemy> enemyList = new List<Enemy>
{
    new Enemy("Goblin", 50, 30, 10),
    new Enemy("Orc", 100, 50, 20)
};

string targetName = "Goblin";
bool containsTarget = enemyList.Any(enemy => enemy.EName == targetName);

// 如果需要忽略大小写匹配,可以改成:
// bool containsTarget = enemyList.Any(enemy => 
//     string.Equals(enemy.EName, targetName, StringComparison.OrdinalIgnoreCase));

Console.WriteLine(containsTarget); // 输出True

解释:Any()方法会遍历整个列表,只要找到一个Enemy对象的EName和目标字符串匹配,就会立即返回true,不需要遍历完所有元素,效率很高。

方法二:使用foreach循环(适合新手理解基础逻辑)

如果你还没接触过LINQ,用传统的循环也能实现:

List<Enemy> enemyList = new List<Enemy>
{
    new Enemy("Goblin", 50, 30, 10),
    new Enemy("Orc", 100, 50, 20)
};

string targetName = "Orc";
bool containsTarget = false;

foreach (Enemy enemy in enemyList)
{
    if (enemy.EName == targetName)
    {
        containsTarget = true;
        break; // 找到匹配项后直接跳出循环,不用继续遍历
    }
}

Console.WriteLine(containsTarget); // 输出True

解释:通过遍历列表中的每个Enemy对象,逐个检查EName属性是否等于目标字符串,找到后就标记为存在并终止循环。

另外补充一点:如果你的需求不是检查EName完全相等,而是某个属性包含指定字符串,可以把判断条件改成enemy.EName.Contains(targetString)这样的形式哦~

内容的提问来源于stack exchange,提问作者PineappleSurprise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:23:21