4

私が作成しているプログラムでは、「Tickers」という文字列を設定で作成しました。スコープは Application で、値は引用符なしの "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);
    }
4

2 に答える 2

0

コレクションには LINQ 拡張メソッドを使用できます。はるかに簡単なコードになります。まず、設定から文字列を分割し、アイテムをコレクションに追加します。次に、テキスト ボックスから文字列を分割し (忘れてしまいました)、それらの項目も追加します。3 番目に、拡張メソッドを使用して個別のリストを取得します。

// 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();
于 2013-08-10T10:36:20.963 に答える