|
I would create a hashset and add the numbers as they're generated. Since a hashset doesn't allow duplicate keys, you could just keep generating random numbers until you have 10 hashset entries.
HashSet<int> hash = new HashSet<int>();
Random random = new Random(DateTime.Now.Milliseconds);
int value = 0;
int final = 0;
do
{
try
{
if (hash.Count == 9)
{
final++;
hash.Add(final);
}
value = random.Next(1, 10);
hash.Add(value);
}
catch (Exception)
{
}
}
while (hash.Count < 10)
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997
|
|
|
|
|
I coded a small contest . You can download it from here[^]
In my machine result is thus:
TestHashSet() completed in
00:00:00.0380860
TestList() completed in
00:00:00.0009766
do rather than say; be rather than do.
Ozgur Sonmez.
|
|
|
|
|
I haven't looked at your test, but if you'd like to time this code, have at it. I have no idea if it's any faster or slower, but it seems almost instantaneous to me Of course, every run is going to take a different amount of time because of the random.Next() function. The code below changes the range of random numbers if possible.
HashSet<int> hash = new HashSet<int>();
Random random = new Random(DateTime.Now.Millisecond);
int value = 0;
int start = 1;
int stop = 10;
do
{
try
{
value = random.Next(start, stop);
hash.Add(value);
if (value == start)
{
start++;
}
else if (value == stop)
{
stop--;
}
if (start == stop && hash.Count < 10)
{
hash.Add(start);
}
}
catch (Exception)
{
}
} while (hash.Count < 10);
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997
|
|
|
|
|
meet_ssr wrote: Performance is a concern
cheers.
Ozgur Sonmez.
|
|
|
|
|
hi all.
now, i have datagridview in C#. i want add fix data into Datatable and show on datagridview. But, in line 2, i set value all column blank and not add button "show data" in this row. in datagridview it alway add button in row, but i want it not add button in line i will choice.
help me, please.
private static DataTable MakeTable()
{
// Create a new DataTable titled 'Names.'
DataTable namesTable = new DataTable("Names3");
//Add three column objects to the table.
DataColumn ClassificationNumber3 = new DataColumn();
ClassificationNumber3.DataType = System.Type.GetType("System.String");
ClassificationNumber3.ColumnName = "ClassificationNumber3";
namesTable.Columns.Add(ClassificationNumber3);
}
private static DataTable GetTable()
{
DataTable dt;
dt = MakeTable();
int i = 0;
DataRow dr;
try
{
for (i = 0; i < 20; i++)
{
dr = dt.NewRow();
// Then add the new row to the collection.
if (i <= 6)
{
dr["ClassificationNumber3"] = "03J";
//DataGridViewButtonColumn btn = new DataGridViewButtonColumn();
//btn.HeaderText = "Click Data";
//btn.Text = "Click Here";
//btn.Name = "button3";
//btn.UseColumnTextForButtonValue = true;
//dataGridView3.Rows.Add(btn);
}
else if(i == 7)
{
dr["ClassificationNumber3"] = "";
}
else
{
dr["ClassificationNumber3"] = "03K";
}
dt.Rows.Add(dr);
}
thanks very much
nothing
|
|
|
|
|
Please re-format your question to reflect code in < pre > tags.
Clearly say what you are saying, so that we may be able to help you.
♫ 99 little bugs in the code,
99 bugs in the code
We fix a bug, compile it again
101 little bugs in the code ♫
|
|
|
|
|
|
I have a C# mobile application class. In that, there is a functionality which I use XmlTextWriter class. While compiling I am getting the following error:
The type 'System.Xml.XmlTextWriter' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
I have added reference of System.Xml through Add Reference and also use the namespace by the keyword 'using...'. Still I am getting the same error. Any Idea how to resolve this? I am using Visual Studio 2005 SP2. Is this belong to some setup issue? Please help.
Thanks
meeram395.
Success is the good fortune that comes from aspiration, desperation, perspiration and inspiration.
|
|
|
|
|
Click on System.Xml in the references section. Click properties, and see what the version number is. Make sure you are using the correct version.
|
|
|
|
|
The version and runtime version is 2.0.0.0 only. Is there any other settings need to change?
Success is the good fortune that comes from aspiration, desperation, perspiration and inspiration.
|
|
|
|
|
The only thing I've got to wonder is if this is the mobile version or the desktop version, and whether you have multiple projects in your solution (in which case you'd have the ensure the same was present in all projects this particular project was referenced in).
|
|
|
|
|
meeram395 wrote: I have a C# mobile application class.
Looks like it may not be available for mobile;
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role not supported), Windows Server 2003 SP2
I are Troll
|
|
|
|
|
Ok.
The error doesn't have any relation with mobile development. The error occurs in a simple class which is having XMLTextWriting functionality
Success is the good fortune that comes from aspiration, desperation, perspiration and inspiration.
|
|
|
|
|
meeram395 wrote: The error doesn't have any relation with mobile development.
It depends. Are you trying to use the class from the Compact Framework? Seems it is not part of that framework, and I doubt that you can simply reference libraries that where meant to run on a real desktop.
I are Troll
|
|
|
|
|
Ok. That makes sense. Thanks very much.
I tried to view the reference in object properties and I can see two xml references, one is without Compact Framework and one is with it. So I believe that it is referencing from Compact Framework. Let me try to resolve this. Would be great if you can have some inputs.
Thanks once again
Success is the good fortune that comes from aspiration, desperation, perspiration and inspiration.
|
|
|
|
|
I'm trying to display a date in a c# ms excel report (via the office object library dll) to display as the following (including the commas):
Wednesday, May 4, 2011
I've tried several attempts but no luck so far. What's the format I should be using to display a c# datetime correctly?
Thanks.
|
|
|
|
|
This is a C# forum so the answer from here would be
DateTime.Now.ToString("dddd, MMMM d, yyyy")
If this is different from what works in excel, you may need to ask in a different forum.
Brent
|
|
|
|
|
You can format DateTime strings in .NET any way you want. This little article[^] of mine contains the necessary links to MSDN, and more.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
Or maybe use the long date time option.
|
|
|
|
|
If you mean that you want it formatted by Excel then you have to add the formatting to the cell that holds the datetime value.
The best things in life are not things.
|
|
|
|
|
Thanks for the help. My solution kept unfortunately having issues using the above formats within my excel report however when I placed a comma in front of the date, it worked fine.
String reportDate = "'" + DateTime.Now.ToString("dddd, MMMM d, yyyy");
Thanks.
|
|
|
|
|
In Form2 Properties I set - IsMDIContainer = True. And Form3 is MdiChild with Formborderstyle=None. MdiPaarent Form2 is having Toolstrip Hence while I dock its possible to see from all mdichild forms. And my problem is when I click the close button, it's also closing the MDIParent. But I need to close only mdichild... for that I tried as like Vb.Net2008 style by the following codes placed in MDIParent Form2, Its not working. Any right directions ...
private void toolStripButton1_Click(object sender, EventArgs e)
{
Form3 NwMdiChild2 = new Form3;
NwMdiChild2.MdiParent = this;
NwMdiChild2.Dock = System.Windows.Forms.DockStyle.Fill;
NwMdiChild2.Show();
}
private void Form2_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e) {
Form[] MdiChildForms = this.MdiChildren;
int kkk1 = MdiChildForms.Length;
int x = 0;
for (x = 0; x <= MdiChildForms.Length - 1; x += 1)
{
if (MdiChildForms[x].Name == "Form1")
{ kkk1 = kkk1 - 1;
}
MdiChildForms[x].Close();
}
if (kkk1 > 0)
{
e.Cancel = true;
}
else
{
e.Cancel = false;
Application.Exit();
}
}
Any Right Directions for Me?
Thanks For Reply
|
|
|
|
|
So you want this...
The user clicks the close button on the MdiParent and
if there are child forms open, close them all but leave the parent open
else close the parent & application
?
If so, this will do it. I have renamed the forms/controls to sensible names so the code is easier to follow.
using System;
using System.Windows.Forms;
namespace MdiApplicationTest
{
public partial class FormParent : Form
{
public FormParent()
{
InitializeComponent();
}
private void toolStripButtonNewChild_Click(object sender, EventArgs e)
{
FormChild child = new FormChild();
child.MdiParent = this;
child.Dock = DockStyle.Fill;
child.Show();
}
private void FormParent_FormClosing(object sender, FormClosingEventArgs e)
{
if (MdiChildren.Length > 0)
{
foreach (Form form in MdiChildren)
form.Close();
e.Cancel = true;
}
}
}
}
|
|
|
|
|
Hi Dave,
Thousands of thanks to your kindness...Because I remember when I start Vb.Net you are the one teach to me lot of things.
Just I started C# VS 2010.
But here the problem project startup is
Program.cs
And same code I put in my MDIcontainer its not fired. I checked by messagebox also. I don't know how to detect..
Is it because of startup program ?
Can you pls. check it in C# VS2010?
Thanks Again
|
|
|
|
|
I'm not sure how you're hooking your stuff together.
Here[^] is my solution zipped - see if you can work out how I've done it by examining it.
|
|
|
|
|
Thanks...
It helpmed me lot...
Thanks Again
|
|
|
|