簡體   English   中英

從某個索引位置將字符串連接在一起 C#

[英]Joining strings together from certain index position C#

我的應用程序正在從文本文件中讀取一行,然后將此信息保存到我的 Message 類中。

我已經編寫了以下代碼,但是對於文本文件中的下一行,消息內容較長,需要類似於 split[2] + " " + split[3] + " " + split[4] + " " + split[5] 保存整個消息內容。

public Conversation ReadConversation(string inputFilePath)
        {
            try
            {
                var reader = new StreamReader(new FileStream(inputFilePath, FileMode.Open, FileAccess.Read),
                    Encoding.ASCII);

                string conversationName = reader.ReadLine();
                var messages = new List<Message>();

                string line;

                while ((line = reader.ReadLine()) != null)
                {
                    var split = line.Split(' ');

                    string messageContent = split[2] + " " + split[3];


                    messages.Add(new Message(DateTimeOffset.FromUnixTimeSeconds(Convert.ToInt64(split[0])), split[1], messageContent));

                }

                return new Conversation(conversationName, messages);

由於每個內容的長度不同,我嘗試使用 string messageContent = string.Join(" ", split)。

這將所有字符串加在一起,但我需要它從 split[2] 開始,並為該特定行的長度繼續添加剩余的拆分。 這可能嗎?

我嘗試使用 string.Join(" ", split, 2, split.count()) ,其中 2 表示我想要開始的索引位置並根據總拆分進行計數,但我收到一條錯誤消息:System. ArgumentOutOfRangeException: '索引和計數必須引用緩沖區內的一個位置。 (參數'startIndex')'

string.Join(" ", split, 2, split.count())這一行是讀取拆分集合,然后從起始位置 2 加入所有拆分集合。 例如,如果您有字符串“你好,我的名字是”。 拆分后,它的計數將為 5,並且從位置 2 開始,它將嘗試加入所有 5 個。這就是您遇到異常的原因。 相反,你可以試試這個string.Join(" ",split,2,split.Count()-2) 從位置 2 開始,加入集合中的所有項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM