小编Atu*_*tur的帖子

C#Stringbuilder OutOfMemoryException

我写了以下功能

public void TestSB()
{
  string str = "The quick brown fox jumps over the lazy dog.";
  StringBuilder sb = new StringBuilder();
  int j = 0;
  int len = 0;

  try
  {
     for (int i = 0; i < (10000000 * 2); i++)
     {
        j = i;
        len = sb.Length;
        sb.Append(str);
     }

    Console.WriteLine("Success ::" + sb.Length.ToString());
  }
  catch (Exception ex)
  {
      Console.WriteLine(
          ex.Message + " :: " + j.ToString() + " :: " + len.ToString());
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我想,这个stringbuilder有能力超过20亿字符(准确地说是2,147,483,647).

但是当我运行上面的函数时,它只是在达到大约8亿的容量时给出了"System.OutOfMemoryException".而且,我在具有相同内存和相似负载量的不同PC上看到了截然不同的结果.

任何人都可以提供或解释我的原因.

c# stringbuilder out-of-memory

18
推荐指数
1
解决办法
2万
查看次数

通过javascript清除浏览器缓存和历史记录并加载最新的js文件

如何通过javascript清除浏览器缓存和历史记录我找到了一些链接,如: -

如何清除浏览器历史记录清除缓存?

如何在javascript中清除浏览器哈希历史记录

但他们没有正确描述如何通过javascript(或jQuery)实现这一点

我需要这样,以便用户不必执行[Ctrl + F5]或手动清除缓存,并在浏览器中加载最新版本的javascript文件.

主要目的是每次用户访问网站时加载最新的JavaScript文件.我在ASP.NET MVC和javascript文件中的应用程序包含在.csHtml文件中.

javascript jquery

5
推荐指数
2
解决办法
4万
查看次数

wsdl2java(CXF)中的自定义包

我想使用wsdl2java(CXF)命令生成自定义包.

我的WSDL结构是:

wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"   
xmlns:jms="http://www.tibco.com/namespaces/ws/2004/soap/binding/JMS" 
xmlns:ns20="http://cdm.test.co.uk/marketing/Promotions/2.0"   
xmlns:jndi="http://www.tibco.com/namespaces/ws/2004/soap/apis/jndi" 
xmlns:ns16="http://cdm.test.co.uk/common/CrossRef/2.0" 
xmlns:ns17="http://services.test.co.uk/service/CommonMessage/2.0" 
xmlns:ns14="http://cdm.test.co.uk/banking/Wallet/2.0"     
xmlns:ns15="http://cdm.test.co.uk/common/Currency/2.0" 
xmlns:ns18="http://cdm.test.co.uk/customer/Transaction/2.0" 
xmlns:ns19="http://cdm.test.co.uk/party/PartyRole/2.0" 
xmlns:ns9="http://cdm.test.co.uk/common/Channel/2.0" 
xmlns:soap1="http://schemas.xmlsoap.org/wsdl/soap12/" 
xmlns:ns12="http://cdm.test.co.uk/banking/Payment/2.0" 
xmlns:ns5="http://cdm.test.co.uk/common/InternationalMoney/2.0" 
xmlns:ns13="http://cdm.test.co.uk/customer/Account/2.0" 
xmlns:ns6="http://cdm.test.co.uk/common/Location/2.0" 
xmlns:ns10="http://cdm.test.co.uk/retail/RetailShop/2.0"  
xmlns:ns7="http://cdm.test.co.uk/party/Party/2.0" 
xmlns:ns11="http://cdm.test.co.uk/common/BaseType/2.0" 
xmlns:ns8="http://cdm.test.co.uk/product/Games/2.0" 
xmlns:ns2="http://cdm.test.co.uk/common/Country/2.0" 
xmlns:ns1="http://cdm.test.co.uk/customer/Customer/2.0" 
xmlns:ns4="http://cdm.test.co.uk/partner/Affiliate/2.0" 
xmlns:ns3="http:///common/ManagedEntity/2.0" 
xmlns:tns="http://services.test.co.uk/service/banking/walletTransaction/TransferFunds/1.0" 
xmlns:ns0="http://cdm.test.co.uk/producdm.test.co.ukct/Catalogue/2.0" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
targetNamespace="http://services.test.co.uk/service/banking/walletTransaction/TransferFunds/1.0"
Run Code Online (Sandbox Code Playgroud)

我使用下面的命令来生成java文件:

wsdl2java -db xmlbeans -d"D:\ MY_PROJECT"wsdllocation

所以所有的java文件都是在uk.co.test.cdm和uk.co.test.services文件夹中创建的.

但我想在com.greeting.cdm和com.greeting.services文件夹下生成所有文件.意味着uk.co.test应该被com.greeting取代.

我在命令中使用了此选项来更改包 :-p com.greeting但这不起作用.

谁能请解决方案来解决这个问题.

cxf

5
推荐指数
1
解决办法
2804
查看次数

字符串值到字节数组而不转换

我试图将字符串的值放入字节数组而不更改字符.这是因为字符串实际上是数据的字节表示.

目标是将输入字符串移动到字节数组中,然后使用以下命令转换字节数组:

string result = System.Text.Encoding.UTF8.GetString(data);
Run Code Online (Sandbox Code Playgroud)

我希望有人可以帮助我,虽然我知道这不是一个很好的描述.

编辑:也许我应该解释一下,我正在研究的是一个带有文本框的简单窗体,用户可以将编码数据复制到其中,然后单击预览以查看解码数据.

编辑:多一点代码:(inputText是一个文本框)

    private void button1_Click(object sender, EventArgs e)
    {
        string inputString = this.inputText.Text;
        byte[] input = new byte[inputString.Length];
        for (int i = 0; i < inputString.Length; i++)
        {
            input[i] = inputString[i];
        }
        string output = base64Decode(input);
        this.inputText.Text = "";
        this.inputText.Text = output;
    }
Run Code Online (Sandbox Code Playgroud)

这是Windows窗体的一部分,它包含一个富文本框.这段代码不起作用,因为它不会让我将char类型转换为byte.但是,如果我将线路更改为:

    private void button1_Click(object sender, EventArgs e)
    {
        string inputString = this.inputText.Text;
        byte[] input = new byte[inputString.Length];
        for (int i = 0; i < inputString.Length; i++)
        {
            input[i] = (byte)inputString[i]; …
Run Code Online (Sandbox Code Playgroud)

.net c# casting

2
推荐指数
1
解决办法
2万
查看次数

不能将float或decimal插入mysql db

我想将值插入33.55555数据库.即使将mysql行更改为float或后decimal,我也无法正确执行此操作.
MySQL的:

ALTER TABLE `test` CHANGE `test1` `test1` DECIMAL( 10,10 ) NOT NULL 
Run Code Online (Sandbox Code Playgroud)

插入后将33.55555其转换为0.9999999999通过此sql命令

ALTER TABLE `test` CHANGE `test1` `test1` FLOAT( 10,10 ) NOT NULL 
Run Code Online (Sandbox Code Playgroud)

33.55555 转换为 1.0000000000

mysql sql

2
推荐指数
1
解决办法
3707
查看次数

在C#中列出Jagged数组

我有一份清单

List<int> list = new List<int>();
Run Code Online (Sandbox Code Playgroud)

现在我想将它添加到Jagged数组中

int[][] A = new int[][] { list.ToArray() };
Run Code Online (Sandbox Code Playgroud)

这个代码在顶部是可以的,但问题是列表中的所有值都添加在第一个块中!那么,这将解决:

int[] x1 = list.ToArray();
int[][] A = new int[][] { new[] { x1[0] }, new[] { x1[1] }, new[] { x1[2] }, new[] { x1[3] } };
Run Code Online (Sandbox Code Playgroud)

但是(上面的代码)我现在已经手动完成了这个,这只是列表中我列出的前四个索引.

如何将整个列表(所有索引)添加到我的锯齿状数组(使用圆圈或其他方法).

c# arrays list

2
推荐指数
1
解决办法
276
查看次数

标签 统计

c# ×3

.net ×1

arrays ×1

casting ×1

cxf ×1

javascript ×1

jquery ×1

list ×1

mysql ×1

out-of-memory ×1

sql ×1

stringbuilder ×1