问题描述
所以这是针对我尝试检查目标的特定状态效果的游戏。
List<string> StatusList = new List<string>
{ "Status1","Status2","Status3",};
然后游戏有一个 API 来检查目标的状态效果。
我希望它与列表交叉检查以查看列表中是否有任何匹配项 - 即整个列表不需要匹配,只有单个条目匹配就足以返回 true。
这是检查它的布尔值。
bool Hasstatus(string StatusName,string Unit = "target");
所以到目前为止我已经有了以下内容来检查列表,但我不完全确定这是否正确,然后我不知道如何编写上面的 bool 以“回拨”那个?
bool StatusTest = API.Hasstatus(StatusList.Status,"target");
foreach (string Status in StatusList)
{
if (API.Hasstatus(Status,"target"))
{
StatusTest = true;
}
}
以上当然会产生错误,所以我没有正确编写。有什么想法可以解决这个问题吗?
解决方法
如果您只想检查字符串列表中是否存在字符串,可以使用 Contains
方法。例如:
List<string> StatusList = new List<string>
{ "Status1","Status2","Status3",};
if(StatusList.Contains(someStatusToCheck)) {
// Do something here
}
此外,对 HasStatus
的调用似乎有一个不正确的参数。 StatusList.Status
会抛出错误,因为在 Status
类型上没有属性 List<String>
这个函数应该是比较状态的函数。有了目标后,使用以下方法获取 true
或 false
值:
bool result = StatusTest("example_of_target")
List<string> StatusList = new List<string>
{ "Status1",};
bool StatusTest(string target) {
foreach (string Status in StatusList)
{
if (Status == target)
return true
}
}
,
感谢所有不同的建议!
最后是什么为我解决了这个问题。
private bool StatusTest;
List<string> StatusList = new List<string>
{ "Status1","Status4",};
foreach (string Status in StatusList)
{
if (API.HasStatus(Status,"target"))
{
StatusTest = true;
}
else { StatusTest = false; }
}