【问题标题】:C# Dealing with Large Strings and memory efficiencyC# 处理大字符串和内存效率
【发布时间】:2013-06-12 06:50:25
【问题描述】:

我想知道...如果我想在我的程序中存储一个 MASSIVE 字符串并存储主字符串的子字符串(即存储每个单词并将每个句子存储为字符串数组)我怎么能这样做而不做第一个海量字符串的 2 个副本?

在 C++ 中,我只使用指向部分字符串的指针...在 C# 中有等效的方法吗?

【问题讨论】:

  • C++ 中的指针只是内存地址。同样,您可以存储大量字符串的整数索引(并且占用与 C++ 指针相同的内存)。
  • 为什么不存储子字符串的开始和结束的索引?
  • MASSIVE == 可能是一本完整的书。请参阅 Tigran 的回答,我只是在上班途中遇到了障碍并提出了这个问题,所以我会放松思路。大脑只是跳过了一个节拍,我离开座位并击中了自己的头部......希望这可以帮助其他人
  • 如果你能以你想要的方式将子字符串的索引存储在一个数组中?
  • 是的,我打算这样做

标签: c# string split substring


【解决方案1】:

您可以存储您要引用的子字符串的 startendindices

在这种情况下,如果您的string 将在程序运行时发生变化,您的“子字符串”将引用string 的最新版本,但我不确定,因为不清楚从问题来看,如果这实际上是预期的行为。

【讨论】:

  • 我觉得自己很愚蠢..我已经在这个问题上徘徊了一段时间..并且想不出解决方案...然后我写完问题并离开了我的房间,我当时想... 获取字符串.. 为每个单词转换为 String[] 为每个句子制作 {int start, int end} 数组。 :|哈哈,在你离开电脑之前,你不会想……我本来想再多想一会,但这让我很生气,而且我正在上班的路上,所以我正要松动我的思路。
  • @MichaelCrook:有时会发生 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 2010-10-11
  • 2012-09-30
相关资源
最近更新 更多