C# 拆分大小小于1MB的字符串

C# 拆分大小小于1MB的字符串,c#,asp.net,.net,string,c#-4.0,C#,Asp.net,.net,String,C# 4.0,如果arraylist的每个字符串大小都应小于1MB,有人可以建议如何将字符串拆分为arraylist吗 我在字符串变量中提供了字符串值。我需要遍历字符串值,然后检查字符串大小是否应始终大于1MB,如果大小大于1MB,则拆分字符串数据并将其存储在数组列表的子字符串中 有人可以建议我如何在下面的代码中实现它: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys

如果arraylist的每个字符串大小都应小于1MB,有人可以建议如何将字符串拆分为arraylist吗

我在字符串变量中提供了字符串值。我需要遍历字符串值,然后检查字符串大小是否应始终大于1MB,如果大小大于1MB,则拆分字符串数据并将其存储在数组列表的子字符串中

有人可以建议我如何在下面的代码中实现它:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System;
class Program
{
    public static void Main()
    {


        String[][] TextFile = new String[5][] { { "Mike", "Amy" }, { "Mary", "Albert" } } ;


        for (int i = 0; i < TextFile.Length; i++)
        {
            TextFile[i] = new String[i + 1];
        }


        for (int i = 0; i < TextFile.Length; i++)
        {
            Console.WriteLine("Length of row {0} is {1}", i, TextFile[i].Length);
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.Runtime.InteropServices;
使用制度;
班级计划
{
公共静态void Main()
{
字符串[][]TextFile=新字符串[5][{{{“Mike”,“Amy”},{“Mary”,“Albert”};
for(int i=0;i
你想做的有点尴尬。如何获得每个字符的字节数,然后相应地计算字符串长度

System.Text.ASCIIEncoding.Unicode.GetByteCount(string);
System.Text.ASCIIEncoding.ASCII.GetByteCount(string);
如果你真的想尝试这种方法,另一种调查方法

Encoding.Default.GetBytes("Hello");

CharithJ的回答很好,但只是为了完成

如果您有尺寸而不是内容的要求,那么我认为您不需要单独阅读/修改零件。如果是这种情况,您不需要它们是字符串,而是一个字节[]就足够了。这样,您就不需要计算编码字符大小(甚至不需要知道编码)。您可以将字符串转换为字节[](字节到字节)


然后您可以使用将其划分为小于1048576(1MB)的部分。

使用
System.Text.asciencecoding.Unicode.GetByteCount(string)
为每个条目添加返回值,通过使用此项并检查总大小是否小于1Mb,您应该很好。您可能应该定义您所指的大小。内存大小?磁盘大小?网络流上的大小?如果是最后两个,您还需要定义编码。
static byte[] GetBytes(string str)
{
    byte[] bytes = new byte[str.Length * sizeof(char)];
    System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
    return bytes;
}