繁体   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