C#检查字符串是否存在,如果存在,则显示该字符串
如何从与字符串匹配的循环中获取单个值 我有一个符号列表,有时包含超过6个字符 使用当前代码,我将从列表中获取最后一个符号 所以我想做的是:C#检查字符串是否存在,如果存在,则显示该字符串,c#,string,foreach,C#,String,Foreach,如何从与字符串匹配的循环中获取单个值 我有一个符号列表,有时包含超过6个字符 使用当前代码,我将从列表中获取最后一个符号 所以我想做的是: 搜索超过6个字符的特定符号,例如EURUSD#1 如果存在,仅显示欧元兑美元#1 如果不存在,请加载欧元/美元 下面是代码和图像,您可以看到所有符号列表 string defaultSymbol = ""; // get all symbols from market watch foreach (string symbol in mt4.Symbols
- 搜索超过6个字符的特定符号,例如EURUSD#1
- 如果存在,仅显示欧元兑美元#1
- 如果不存在,请加载欧元/美元
string defaultSymbol = "";
// get all symbols from market watch
foreach (string symbol in mt4.Symbols)
{
Console.WriteLine(symbol);
// if symbol length is greater that 6, there is a special symbol ex. EURUSD-X, EURUSD#, EURUSD-AX
if (symbol.Length > 6)
{
// there is special symbol, ex. EURUSD#
if (symbol.Contains("EURUSD"))
{
defaultSymbol = symbol.ToString(); // special symbol ex. EURUSD-X or EURUSD# or EURUSD-AX ...
}
else if (symbol.Contains("AUSCAD"))
{
// load another symbol ex. AUSCAD-X, AUSCAD#
defaultSymbol = symbol.ToString(); // this need to load any other one that have more that 6 chars
}
}
else
{
// thsere is no special symbol, load EURUSD by default
// EURUSD exists
if (symbol.Contains("EURUSD"))
{
defaultSymbol = "EURUSD";
}
else
{
// load another symbol ex. AUSCAD if EURUSD don't exists
defaultSymbol = "AUSCAD";
}
}
}
Console.WriteLine("Symbol " + defaultSymbol);
测试字符串:
AUDNZD#
AUDUSD#
CADJPY#
CHFJPY#
EURAUD#
EURCAD#
EURCHF#
EURGBP#
EURJPY#
EURNZD#
EURUSD#
GBPAUD#
GBPCAD#
GBPJPY#
GBPNZD#
GBPUSD#
NZDJPY#
NZDUSD#
USDCAD#
USDCHF#
USDCNH#
USDJPY#
USDSGD#
USDTHB#
XAGUSD#
XAUUSD#
你的问题不太清楚。根据您发布的内容,您当前总是收到最后一个值,这是不期望的。若您只期望循环中的第一个匹配值,那个么一旦找到匹配,就必须使用
break代码>语句。所以把4break放进去代码>在下面几行之后的循环中
defaultSymbol = symbol.ToString(); break; //2places
defaultSymbol = "EURUSD"; break;
defaultSymbol = "AUSCAD"; break;
但在这种情况下,您将只获得第一个匹配值,它取决于m4.Symbols中的顺序
您的代码可能有更多的附加逻辑。如果您能告诉我们m4.Symbols的类型,并在m4.Symbols中发布一些示例值,并告诉我们示例预期输出,那么我可以帮助您了解更多详细信息您能否编辑您的问题并将字符串复制/粘贴为文本,不是图像?@RuiJarimbaedited@Sanja您的代码在if
和else
条件下完全相同,这是故意的吗?@RuiJarimba我更新了代码检查一下please@RuiJarimba代码不是有意的,它需要这样工作,因为如果有一些let say特殊符号(包含6个以上字符)我需要加载那个,在另一种情况下,如果我没有使用我手动定义的默认值的特殊符号。您可以在第一条语句中看到如果(symbol.Length>6)
我需要EURUDX,如果他不存在,我将加载AUSCAD-X如果它存在。m4.符号包含符号名称数组,它们可以包含6个字符(即普通字符),并且可以包含6个以上的字符(即带有后缀的符号),就像你在我的代码下看到的那样。我需要遍历所有文件,以找到一个包含我正在字符串中搜索的名称的文件,并在循环外部使用它。若它包含少于6个字符,那个么我将手动设置要使用的符号。我希望这更清楚。