第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將多個屬性的 CSV 和 concat 后綴拆分為一個列表

將多個屬性的 CSV 和 concat 后綴拆分為一個列表

C#
慕的地8271018 2022-11-21 21:10:08
我有三個格式為 CSV 的字符串屬性:string Tap70V = "1,2,3,4" //example datastring Tap100V = "10,20,30,40" //example datastring Tap25V = ".2,.4,.6,.8" //example data我想要列表中的以下結(jié)果,以便我可以將它綁定到組合框:".2 Watt 25V"".4 Watt 25V"".6 Watt 25V"".8 Watt 25V""1 Watt 70V""2 Watt 70V""3 Watt 70V"等等,直到它顯示"4 Watt 100V"我知道我需要將這三個屬性結(jié)合在一起,用“,”將它們拆分成一個列表,然后連接后綴“Watt XXV”。(不一定按這個順序)我只是想不出一個好的一兩行方法來做到這一點
查看完整描述

4 回答

?
Helenr

TA貢獻1780條經(jīng)驗 獲得超4個贊

首先,您應該將變量的值移動到如下所示的字典結(jié)構(gòu)中


var tbl = new Dictionary<string, string>() {

    { "70V", "1,2,3,4" },

    { "100V", "10,20,30,40" },

    { "25V", ".2,.4,.6,.8" },

};

然后您可以使用以下代碼輕松查詢它


tbl.SelectMany(x => x.Value.Split(',').Select(y => $"{y} Watt {x.Key}"));

該SelectMany調(diào)用展平了多層層次結(jié)構(gòu),并返回IEnumerable<string>帶有所需字符串的 。對于內(nèi)插字符串的$"{y}"語法,如果您不使用受支持的 C# 版本,則可以使用string.Format而不是字符串內(nèi)插


更新


根據(jù) OP 的評論,我提供了一種形成上面字典的方法


var tbl = new Dictionary<string, string>() {

    { nameof(Tap70V), Tap70V },

    { nameof(Tap100V), Tap100V },

    { nameof(Tap25V), Tap25V },

};

依賴變量名來獲取值是一種危險的做法。如果 OP 提供了 和 的值如何可用70V,那么我可以用合適的方式更新答案以使其適應該解決方案100V25V


查看完整回答
反對 回復 2022-11-21
?
哆啦的時光機

TA貢獻1779條經(jīng)驗 獲得超6個贊

問題是:你怎么知道值的范圍與 70V 有關(guān),而值的范圍與 25V 有關(guān)?


但讓我們假設(shè)您有一系列電壓文本組合:


Voltage | Text

   70   | "1,2,3,4"

  100   | "10,20,30,40"

   25   | ".2,.4,.6,.8"

例如,從您的三個變量創(chuàng)建它們:


IEnumerable<VoltageTextCombination> voltageTextCombinations = new VoltageTextCombination[]

{

    new VoltageTextCombination {Voltage =  70, Text = Tap70V},

    new VoltageTextCombination {Voltage = 100, Text = Tap100V},

    new VoltageTextCombination {Voltage =  25, Text = Tap25V},

}

我為此定義了一個類 VoltageTextCombination。當然,您也可以為此使用匿名類型。


要獲得您的組合框項目序列,您需要將文本拆分為一系列瓦特,并使用正確的SelectMany 重載來獲得一系列電壓 - 瓦特組合。之后,您使用 String.Format 將每個電壓 - 瓦特組合轉(zhuǎn)換為您想要顯示的文本:


下面的 LINQ 中使用的常量,用于將輸入文本拆分為瓦特,并將電壓 - 瓦特組合格式化為字符串:


static readonly char[] separatorChars = new char[] {','};

const string strFormat ="{0} Watt {1}V";

LINQ 查詢:


var result = voltageTextCombinations.SelectMany(


    // parameter collectionSelector:

    // input a source element (= one voltageTextCombination)

    // output a sequence (= the text of the combination split into Watts

    combination => combination.Text.Split(separatorChars),


    // parameter resultSelector: take one source element, and one of every watt

    // to make a Voltage - Watt combination

    (voltageTextCombi, splitString) => new

    {

        Voltage = voltageTextCombi.Voltage,

        Watt = splitString,

    })


    // convert every Voltage-Watt combination to one string:

    .Select(voltageWattCombi => String.Format(strFormat,

            voltageWattCombi.Watt,

            voltageWattCombi.Voltage));

非常簡單!


查看完整回答
反對 回復 2022-11-21
?
元芳怎么了

TA貢獻1798條經(jīng)驗 獲得超7個贊

這是我能想到的最干凈的方法來完成我的問題:


if (value is IItemLibrarySpeaker s)

        {

            List<string> taps = s.Speaker25VTaps.Split(',').Select(x => $"{x} Watt/25V").ToList();

            taps.AddRange(s.Speaker70VTaps.Split(',').Select(x => $"{x} Watt/70V"));

            taps.AddRange(s.Speaker100VTaps.Split(',').Select(x => $"{x} Watt/100V"));


            return taps;

        }

感謝您的建議(即使是與我的問題無關(guān)的建議)


查看完整回答
反對 回復 2022-11-21
?
喵喵時光機

TA貢獻1846條經(jīng)驗 獲得超7個贊

根據(jù)提供的示例數(shù)據(jù),我制作了如下示例代碼:


string Tap70V = "1,2,3,4"; //example data

            string Tap100V = "10,20,30,40"; //example data

            string Tap25V = ".2,.4,.6,.8"; //example data


            var test = new List<string>();

                test.AddRange(Tap70V.Split(',').Select(val => val + " Watt 70V"));

                test.AddRange(Tap100V.Split(',').Select(val => val + " Watt 100V"));

                test.AddRange(Tap25V.Split(',').Select(val => val + " Watt 25V"));

在上面的代碼中,將字符串對象值添加到List<string>變量 namedtest中。對于每個對象數(shù)據(jù)都需要拆分并添加范圍到列表中。


查看完整回答
反對 回復 2022-11-21
  • 4 回答
  • 0 關(guān)注
  • 137 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號