在我正在编写的程序中,我在“设置”中创建了一个名为“Tickers”的字符串。范围是应用程序,值为“AAPL,PEP,GILD”,不带引号。
我有一个名为InputTickers的RichTextBox,用户应该在其中放入股票代码,例如AAPL,SPLS等。你明白了。当他们点击InputTickers下方的按钮时,我需要它来获取Settings.Default [“Tickers”]。接下来,我需要它来检查他们输入的任何代码,是否已经在代码清单中。如果没有,我需要添加它们。
将它们添加后,我需要将其重新转换为Tickers字符串以再次存储在“设置”中。
我还在学习编码,所以这是我最好的猜测,因为我已经有多远了。不过,我无法想到如何正确完成这项工作。
private void ScanSubmit_Click(object sender, EventArgs e)
{
// Declare and initialize variables
List<string> tickerList = new List<string>();
try
{
// Get the string from the Settings
string tickersProperty = Settings.Default["Tickers"].ToString();
// Split the string and load it into a list of strings
tickerList.AddRange(tickersProperty.Split(','));
// Loop through the list and do something to each ticker
foreach (string ticker in tickerList)
{
if (ticker !== InputTickers.Text)
{
tickerList.Add(InputTickers.Text);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
答案 0 :(得分:0)
尝试喜欢这个,
foreach (string ticker in tickerList)
{
if (InputTickers.Text.Split(',').Contains(ticker))
{
tickerList.Add(InputTickers.Text);
}
}
如果您的输入字符串有空格,
if (InputTickers.Text.Replace(" ","").Split(',').Contains(ticker))
{
}
答案 1 :(得分:0)
您可以将LINQ扩展方法用于集合。结果更简单的代码。首先,从设置中拆分字符串并将项目添加到集合中。其次,从文本框中拆分(您忘记了)字符串并添加这些项目。第三,使用扩展方法获取不同的列表。
// Declare and initialize variables
List<string> tickerList = new List<string>();
// Get the string from the Settings
string tickersProperty = Settings.Default["Tickers"].ToString();
// Split the string and load it into a list of strings
tickerList.AddRange(tickersProperty.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries));
tickerList.AddRange(InputTickers.Text.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries));
Settings.Default["Tickers"] = String.Join(',', tickerList.Distinct().ToArray());
Settings.Default["Tickers"].Save();