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
相关产品推荐
相关产品推荐

