循环遍历答案键的组合 C#

问题描述 投票:0回答:1

statsList
的随机统计数据中,我想获得该游戏的正确统计数据组合,但我只能通过手动检查每个统计数据来获得我想要的东西。是否有更有效的方法来使用一组答案键循环给定的字符串? 就像 - 如果 stats 是 X 个答案键之一,则正确(循环遍历其中 4 个,如果可能的话优先)

这就是我此刻所做的 -

var stat1 = statsList.FirstOrDefault(s => s.Contains("stamina"));
var stat2 = statsList.FirstOrDefault(s => s.Contains("agility"));
var stat3 = statsList.FirstOrDefault(s => s.Contains("dodge")); 
var stat4 = statsList.FirstOrDefault(s => s.Contains("max hp") || s.Contains("defense"));

if (stat1 != null && stat2 != null && !String.IsNullOrEmpty(stat3) && stat4 != null)
     // do something

所以基本上,每次我检查

statsList
时,它都需要有我选择的4个,就像上面的那个一样。此代码检查循环是否具有我正在寻找的统计数据。它可以完成工作,但我想知道是否有更好的方法。这样我就可以说 -
LookUpForStats(s1, s2, s3, s4, s5 ..)

c# .net list winforms for-loop
1个回答
0
投票

也许是这样的?

wantedStats = new List<string>{"stamina", "agility", "dodge"};
noneIsNull = true;

foreach(string name in wantedStats){
  stats = statsList.FirstOrDefault(s => s.Contains(name));
  if (stats == null){
    noneIsNull = false;
    break;
  }
}
if (noneIsNull)
  // Do Something
© www.soinside.com 2019 - 2024. All rights reserved.