0
private readonly List<A> _previousDayPrices;    

private void PrintDebugPreviousDayPrice(DateTime date)
{
    var str = "";
    foreach (var d in _previousDayPrices.Take(2))
    {
        str += d.Price;
        str += "-";
        str += d.Date;
        str += "-";
        str += d.EuroExchangeRateDate;
        str += "-";
        str += d.EuroExchangeRate;
        str += ",";
    }
}

これを行うためのlinqの方法は何ですか、または文字列のメソッドはありますか?

4

4 に答える 4

4

次のようにlinqを試してください:

string.Join(",", this._previousDayPrices.Take(2).Select(d => string.Format("{0}-{1}-{2}-{3}", d.Price, d.Date,d.EuroExchangeRateDate, d.EuroExchangeRate)).ToArray());
于 2013-11-12T08:44:29.127 に答える
0

試す

        var result = string.Join(",", (from d in _previousDayPrices.Take(2) select 
               string.Join("-", {d.Price, 
                                 d.Date, 
                                 d.EuroExchangeRateDate,
                                 d.EuroExchangeRate})).ToArray());

これは、Price、Date、EuroExchangeRateDate、および EuroExchangeRate が既に文字列であることを前提としています (名前に基づいているとは思えませんが、サンプルはこの方向を指しています)。そうでない場合は、事前に変換する必要があります。

于 2013-11-12T08:45:24.730 に答える
0

それがあなたのコードを改善する方法です

private readonly List<AnItemType> _previousDayPrices;
private void PrintDebugPreviousDayPrice(DateTime date)
{
    StringBuilder stringBuilder = new StringBuilder();
    foreach (AnItemType item in _previousDayPrices)
    {
        String valueToAppend = String.Format(
            "{0}-{1}-{2}-{3},",
            item.Price,
            item.Date,
            item.EuroExchangeRateDate,
            item.EuroExchangeRate);
        stringBuilder.Append(valueToAppend);
    }
}
于 2013-11-12T08:44:53.360 に答える