求教关于C#两道题1.下面这段代码输出什么?为什么?
int i=5,j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
2.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程序来实现。
拜托大家了!
int i=5,j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
2.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程序来实现。
拜托大家了!
Not Equal
原因,i 和 j是两个不同实例。
2.
char b;
string str = "";
Random r = new Random();
for(int i=0;i<10000;i++)
{
int j = r.Next(0,26);
b = (char)(j+97);
str += b;
}
Console.WriteLine(str);
private static string GetRandomString( int nCount );
{
Random myRandom = new Random((int)(DateTime.Now.Ticks));
char[] chrBase = new char[]{'a','b','c',...,'z'};
const int BASE_LENGTH = 26;
string strReturn = "";
for( int i = 0; i < nCount; i++ );
strReturn += chrBase[myRandom.Next % BASE_LENGTH];
return strReturn;
}
比如for中的字符串叠加最好用StringBuilder
2
string all = "abcdefghijklmnopqrstuvwxyz";
Random rd = new Random(); string rs = null; for (int i = 0; i < 10000; i++)
{
string c = all.Substring(rd.Next(26), 1);
rs += c;
}
Console.Write(rs.ToString());