<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-9032260694705269181</id><updated>2009-04-02T23:17:30.373-07:00</updated><title type="text">C Sharp Tricks and Tips</title><subtitle type="html">Curious fascination with Microsoft C# .NET</subtitle><link rel="alternate" type="text/html" href="http://www.csharptricks.com/blog/" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.csharptricks.com/blog/atom.xml" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/CSharpTricksAndTips" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-8629567876613813747</id><published>2007-04-30T15:04:00.000-07:00</published><updated>2008-11-10T22:06:27.353-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><category scheme="http://www.blogger.com/atom/ns#" term="Coding" /><title type="text">Coding Standards for C#: Names</title><content type="html">&lt;h2&gt;Why Coding Standards&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Simple: maintainability. If, 6 months down the line, your customer isn't too happy with the product and wants an enhancement in the application you have created, you should be able to do it without introducing new bugs. There are a lot of other good reasons, but this is the one which concerns us more than anything else.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Not following any standard is like going with a temporary solution (which might lead to a permanent problem) and, as you will see, it takes less effort to keep in mind a few simple measures than to do haphazard coding.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;All you have to do is study good standards once and keep them in the back of your head. Trust me; it's worth it.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Contents&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1. Naming - What is meant by meaningful names&lt;br /&gt;2. Casing - When to use PascalCase and when camelCase&lt;br /&gt;4. Generics - Proper usage&lt;br /&gt;5. Delegates - Proper usage&lt;br /&gt;6. Miscellaneous - Some short tidbits&lt;br /&gt;7. Common Pitfalls - Mistakes we should watch out for&lt;br /&gt;8. References - Where to get more information&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Naming&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;"The beginning of wisdom is to call things by their right names" - Chinese Proverb &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;"Meaningful" is the keyword in naming. By meaningful names, I mean concise names that accurately describe the variable, method or object. Let's see how this would be in C#:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Namespaces&lt;/strong&gt; - Names should be meaningful and complete. Indicate your company or name, product and then your utility. Do not abbreviate.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;//Good&lt;br /&gt;&lt;br /&gt;namespace CompanyName.ProductName.Utility&lt;br /&gt;&lt;br /&gt;//Bad&lt;br /&gt;&lt;br /&gt;namespace CN.PROD.UTIL&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Classes&lt;/strong&gt; - Class names should always be a noun and, again, should be meaningful. Avoid verbs&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;//Good&lt;br /&gt;&lt;br /&gt;class Image&lt;br /&gt;{&lt;br /&gt;   ...&lt;br /&gt;}&lt;br /&gt;class Filters&lt;br /&gt;{&lt;br /&gt;   ...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Bad&lt;br /&gt;&lt;br /&gt;class Act&lt;br /&gt;{&lt;br /&gt;   ...&lt;br /&gt;}&lt;br /&gt;class Enhance&lt;br /&gt;{&lt;br /&gt;   ...&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Methods&lt;/strong&gt; - Always use a verb-noun pair, unless the method operates on its containing class, in which case, use just a verb.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;//Good&lt;br /&gt;&lt;br /&gt;public void InitializePath();&lt;br /&gt;public void GetPath();&lt;br /&gt;public void ShowChanges();&lt;br /&gt;public void System.Windows.Forms.Form.Show();&lt;br /&gt;&lt;br /&gt;//Bad&lt;br /&gt;&lt;br /&gt;public void Path();&lt;br /&gt;public void Changes();&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Methods with return values&lt;/strong&gt; - The name should reflect the return value.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;//Good&lt;br /&gt;&lt;br /&gt;public int GetImageWidth(Bitmap image);&lt;br /&gt;&lt;br /&gt;//Bad&lt;br /&gt;&lt;br /&gt;public int GetDimensions(Bitmap image);&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Variables&lt;/strong&gt; - Do not abbreviate variable names. Variable names should again be descriptive and meaningful.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;//Good&lt;br /&gt;&lt;br /&gt;int customerCount = 0;&lt;br /&gt;int index = 0;&lt;br /&gt;string temp = "";&lt;br /&gt;&lt;br /&gt;//Bad&lt;br /&gt;&lt;br /&gt;int cc = 0;&lt;br /&gt;int i = 0;&lt;br /&gt;string t = "";&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Private member variables&lt;/strong&gt; - Prefix class member variables with &lt;code&gt;m_&lt;/code&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;public class Image&lt;br /&gt;{&lt;br /&gt;   private int m_initialWidth;&lt;br /&gt;   private string m_filename;&lt;br /&gt;   ...&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Interfaces&lt;/strong&gt; - Prefix all interface names with &lt;code&gt;I&lt;/code&gt;. Use a name that reflects an interface's capabilities, either a general noun or an "-able".&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;interface IClock&lt;br /&gt;{&lt;br /&gt;   DateTime Time { get; set; }&lt;br /&gt;   ...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;interface IAlarmClock : IClock&lt;br /&gt;{&lt;br /&gt;   void Ring();&lt;br /&gt;   DateTime AlarmTime { get; set; }&lt;br /&gt;   ...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;interface IDisposable&lt;br /&gt;{&lt;br /&gt;   void Dispose();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;interface IEnumerable&lt;br /&gt;{&lt;br /&gt;   IEnumerator GetEnumerator();&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Custom attributes&lt;/strong&gt; - Suffix all attribute class names with &lt;code&gt;Attribute&lt;/code&gt;. The C# compiler recognizes this and allows you to omit it when using it.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;public class IsTestedAttribute : Attribute&lt;br /&gt;{&lt;br /&gt;   public override string ToString()&lt;br /&gt;   {&lt;br /&gt;      return "Is Tested";&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//"Attribute" suffix can be omitted&lt;br /&gt;&lt;br /&gt;[IsTested]&lt;br /&gt;public void Ring();&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Custom exceptions&lt;/strong&gt; - Suffix all custom exception names with &lt;code&gt;Exception&lt;/code&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;public class UserNotExistentException :&lt;br /&gt;    System.ApplicationException&lt;br /&gt;{&lt;br /&gt;   ...&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Delegates&lt;/strong&gt; - Suffix all event handlers with &lt;code&gt;Handler&lt;/code&gt;; suffix everything else with &lt;code&gt;Delegate&lt;/code&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;public delegate void ImageChangedHandler();&lt;br /&gt;public delegate string StringMethodDelegate();&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Casing &lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;C# standards dictate that you use a certain pattern of Pascal Casing (first word capitalized) and Camel Casing (all but first word capitalized).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Pascal Casing &lt;/strong&gt;- use &lt;strong&gt;P&lt;/strong&gt;ascal&lt;strong&gt;C&lt;/strong&gt;asing for classes, types, methods and constants.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;public class ImageClass&lt;br /&gt;{&lt;br /&gt;   const int MaxImageWidth = 100;&lt;br /&gt;   public void ResizeImage();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;enum Days&lt;br /&gt;{&lt;br /&gt;   Sunday,&lt;br /&gt;   Monday,&lt;br /&gt;   Tuesday,&lt;br /&gt;   ...&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;strong&gt;Camel Casing&lt;/strong&gt; - use &lt;strong&gt;c&lt;/strong&gt;amel&lt;strong&gt;C&lt;/strong&gt;asing for local variables and method arguments.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;int ResizeImage(int imageCount)&lt;br /&gt;{&lt;br /&gt;   for(int index = 0; index &amp;lt; imageCount; index++)&lt;br /&gt;   {&lt;br /&gt;      ...&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Generics&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Generics, introduced in .NET 2.0, are classes that work uniformly on values of different types.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;Use capital letters for types; don't use "Type" as a suffix.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;//Good&lt;br /&gt;&lt;br /&gt;public class Stack ‹T›&lt;br /&gt;&lt;br /&gt;//Bad&lt;br /&gt;&lt;br /&gt;public class Stack ‹t›&lt;br /&gt;public class Stack ‹Type›&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Delegates&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;Use &lt;strong&gt;delegate inference&lt;/strong&gt; instead of explicit delegate instantiation.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;public delegate void ImageChangedDelegate();&lt;br /&gt;public void ChangeImage()&lt;br /&gt;{&lt;br /&gt;   ...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//Good&lt;br /&gt;&lt;br /&gt;ImageChangedDelegate imageChanged = ChangeImage;&lt;br /&gt;&lt;br /&gt;//Bad&lt;br /&gt;&lt;br /&gt;ImageChangedDelegate imageChanged =&lt;br /&gt;    new ImageChangedDelegate(ChangeImage);&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Use &lt;strong&gt;empty parenthesis&lt;/strong&gt; on anonymous methods without parameters.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;public delegate void ImageChangeDelegate();&lt;br /&gt;ImageChangedDelegate imageChanged = delegate()&lt;br /&gt;{&lt;br /&gt;   ...&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Miscellaneous&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Avoid putting &lt;code&gt;using&lt;/code&gt; statements inside a namespace &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Check spelling in comments &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Always start left curly brace { on a new line &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Group framework namespaces together; add custom and thirdparty namespaces below &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Use strict indentation (3 or 4 spaces, no tabs) &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Avoid fully qualified type names &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Indent comment at the same line as the code &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;All member variables should be declared at the top of classes; properties and methods should be separated by one line each &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Declare local variables as close as possible to the first time they're used &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;File names should reflect the classes that they contain &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Common Pitfalls&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Let's face it, we all do these things one time or another. Let's avoid them as best as we can:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;Names that make sense to no one but ourselves.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;string myVar;&lt;br /&gt;MyFunction();&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Single or double letter variable names (this is excusable for local variables).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;int a, b, c, a1, j1, i, j, k, ii, jj, kk, etc.&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Abstract names.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;private void DoThis();&lt;br /&gt;Routine48();&lt;br /&gt;string ZimboVariable;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Acronyms.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;//AcronymFunction&lt;br /&gt;&lt;br /&gt;AF();&lt;br /&gt;//SuperFastAcronymFunction&lt;br /&gt;&lt;br /&gt;SFAT()&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Different functions with similar names.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;DoThis();&lt;br /&gt;DoThisWillYa();&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Names starting with underscores. They look cool, but let's not ;)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;int _m1 = 0;&lt;br /&gt;string __m2 = "";&lt;br /&gt;string _TempVariable = "";&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Variable names with subtle and context-less meanings.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;string asterix = "";&lt;br /&gt;// (this is the best function of all)&lt;br /&gt;&lt;br /&gt;void God()&lt;br /&gt;{&lt;br /&gt;   ...&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Abbreviations.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;string num;&lt;br /&gt;int abr;&lt;br /&gt;int i;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;References&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.tiobe.com/standards/gemrcsharpcs.pdf"&gt;Coding Standard: C#&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://thc.org/root/phun/unmaintain.html"&gt;How to Write Unmaintainable Code&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=336"&gt;C# Coding Style Guide&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://idesign.net/idesign/DesktopDefault.aspx"&gt;Juval Lowy - IDesign.NET&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Edited by &lt;a href="http://www.codeproject.com/script/profile/whos_who.asp?vt=arts&amp;amp;id=556502"&gt;reinux&lt;/a&gt; (thanks rei) &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Shared by &lt;a href="http://www.codeproject.com/KB/cs/CSharpCodingStandards.aspx"&gt;DeepWaters&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-8629567876613813747?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/-EUt5CpVWVk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/8629567876613813747/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=8629567876613813747" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/8629567876613813747" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/8629567876613813747" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/-EUt5CpVWVk/coding-standards-for-c-names.html" title="Coding Standards for C#: Names" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2007/04/coding-standards-for-c-names.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-4918468817990345011</id><published>2007-03-25T02:48:00.000-07:00</published><updated>2008-04-25T02:49:32.304-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><category scheme="http://www.blogger.com/atom/ns#" term="DataStructures" /><title type="text">Tree Data structure in C Sharp .NET</title><content type="html">Here is a simple Tree data structure in C sharp.NET &lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace Algorithms&lt;br /&gt;{&lt;br /&gt;    class Tree&lt;br /&gt;    {&lt;br /&gt;        private TreeNode root;&lt;br /&gt;        public Tree()&lt;br /&gt;        {&lt;br /&gt;            root = null;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public TreeNode FindRecursive(TreeNode root, int dataValue)&lt;br /&gt;        {&lt;br /&gt;            if (root == null)&lt;br /&gt;            { return null; }&lt;br /&gt;            else if (root.DataValue == dataValue)&lt;br /&gt;            { return root; }&lt;br /&gt;            else if (root.DataValue &lt; dataValue)&lt;br /&gt;            { return FindRecursive(root.RightNode, dataValue);}&lt;br /&gt;            else &lt;br /&gt;            { return FindRecursive(root.LeftNode, dataValue); &lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public TreeNode Find(int dataValue)&lt;br /&gt;        {&lt;br /&gt;            if (root == null)&lt;br /&gt;            {&lt;br /&gt;                return null;&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                TreeNode currentNode = root;&lt;br /&gt;                while (currentNode != null)&lt;br /&gt;                {&lt;br /&gt;                    if (currentNode.DataValue == dataValue)&lt;br /&gt;                    {&lt;br /&gt;                        return currentNode;&lt;br /&gt;                    }&lt;br /&gt;                    else if (currentNode.DataValue &lt; dataValue)&lt;br /&gt;                    {&lt;br /&gt;                        currentNode = currentNode.RightNode; &lt;br /&gt;                    }&lt;br /&gt;                    else if (currentNode.DataValue &gt; dataValue)&lt;br /&gt;                    {&lt;br /&gt;                        currentNode = currentNode.LeftNode; &lt;br /&gt;                    }&lt;br /&gt;                    return null;&lt;br /&gt;                }&lt;br /&gt;                return null;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    public class TreeNode&lt;br /&gt;    {&lt;br /&gt;        private int dataValue;&lt;br /&gt;        private TreeNode leftNode = null;&lt;br /&gt;        private TreeNode rightNode = null;&lt;br /&gt;&lt;br /&gt;        public TreeNode(int data)&lt;br /&gt;        {&lt;br /&gt;            dataValue = data;&lt;br /&gt;        }&lt;br /&gt;        public TreeNode LeftNode&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return leftNode;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                leftNode = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public TreeNode RightNode&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return rightNode;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                rightNode = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public int DataValue&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return dataValue;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                dataValue = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-4918468817990345011?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/vMDSMJ2oSvs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/4918468817990345011/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=4918468817990345011" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/4918468817990345011" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/4918468817990345011" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/vMDSMJ2oSvs/tree-data-structure-in-c-sharp-net.html" title="Tree Data structure in C Sharp .NET" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2007/03/tree-data-structure-in-c-sharp-net.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-5768151973220484955</id><published>2007-02-25T02:47:00.000-08:00</published><updated>2008-04-25T02:48:00.265-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><category scheme="http://www.blogger.com/atom/ns#" term="DataStructures" /><title type="text">Check If Cycle exists in a Linked List</title><content type="html">Check if the linked list contains a cycle &lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace Algorithms&lt;br /&gt;{&lt;br /&gt;    public class LinkedList&lt;br /&gt;    {&lt;br /&gt;        private Node head;&lt;br /&gt;&lt;br /&gt;        public LinkedList()&lt;br /&gt;        {&lt;br /&gt;            head = null;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;       &lt;br /&gt;        public bool CheckCycle()&lt;br /&gt;        {&lt;br /&gt;            Node step1Node = head;&lt;br /&gt;            Node step2Node = head.NextNode;&lt;br /&gt;            &lt;br /&gt;            while (true)&lt;br /&gt;            {&lt;br /&gt;                if ((step2Node == null)||(step2Node.NextNode == null))&lt;br /&gt;                    return false;&lt;br /&gt;                else if ((step1Node.Equals(step2Node))||(step1Node.Equals(step2Node.NextNode)))&lt;br /&gt;                    return true;&lt;br /&gt;                else&lt;br /&gt;                { &lt;br /&gt;                step2Node = step2Node.NextNode;&lt;br /&gt;                step2Node = step2Node.NextNode;&lt;br /&gt;                step1Node = step1Node.NextNode;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public int FindPosition(int data)&lt;br /&gt;        {&lt;br /&gt;            Node checkNode = head;&lt;br /&gt;            int position = 1;&lt;br /&gt;            int dataPosition = 0;&lt;br /&gt;            while (checkNode != null)&lt;br /&gt;            {&lt;br /&gt;                if (checkNode.DataValue == data)&lt;br /&gt;                {&lt;br /&gt;                    dataPosition = position;&lt;br /&gt;                }&lt;br /&gt;                checkNode = checkNode.NextNode;&lt;br /&gt;                position = position + 1;&lt;br /&gt;            }&lt;br /&gt;            return dataPosition;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    public class Node&lt;br /&gt;    {&lt;br /&gt;        private int dataValue;&lt;br /&gt;        private Node nextNode = null;&lt;br /&gt;&lt;br /&gt;        public Node(int data)&lt;br /&gt;        {&lt;br /&gt;            dataValue = data;&lt;br /&gt;        }&lt;br /&gt;        public Node NextNode&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return nextNode;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                nextNode = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public int DataValue&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return dataValue;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                dataValue = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-5768151973220484955?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/jmKJEO8g3Mg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/5768151973220484955/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=5768151973220484955" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/5768151973220484955" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/5768151973220484955" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/jmKJEO8g3Mg/check-if-cycle-exists-in-linked-list.html" title="Check If Cycle exists in a Linked List" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2007/02/check-if-cycle-exists-in-linked-list.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-4648115669884973838</id><published>2007-02-25T02:44:00.000-08:00</published><updated>2008-04-25T02:46:36.683-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><category scheme="http://www.blogger.com/atom/ns#" term="DataStructures" /><title type="text">Nth Element from the last in a Linked List</title><content type="html">Another advanced algorithm is to find the Nth Element from the LAST with the optimal performance. &lt;br /&gt;Here is the implementation&lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace Algorithms&lt;br /&gt;{&lt;br /&gt;    public class LinkedList&lt;br /&gt;    {&lt;br /&gt;        private Node head;&lt;br /&gt;&lt;br /&gt;        public LinkedList()&lt;br /&gt;        {&lt;br /&gt;            head = null;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public int FindNthElementFromLast(int m)&lt;br /&gt;        {&lt;br /&gt;            int n = m - 1;&lt;br /&gt;            int returnValue = -1;&lt;br /&gt;            if (n &gt;= 0)&lt;br /&gt;            {&lt;br /&gt;                Node nthElement = head;&lt;br /&gt;                Node currentElement = head;&lt;br /&gt;                for (int i =0;i less than n;i++)&lt;br /&gt;                {&lt;br /&gt;                    if (currentElement.NextNode != null)&lt;br /&gt;                    {&lt;br /&gt;                        currentElement = currentElement.NextNode;&lt;br /&gt;                    }&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                        returnValue = -1;&lt;br /&gt;                        return returnValue;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;                if (returnValue != -1)&lt;br /&gt;                {&lt;br /&gt;                    while (currentElement.NextNode != null)&lt;br /&gt;                    {&lt;br /&gt;                        currentElement = currentElement.NextNode;&lt;br /&gt;                        nthElement = nthElement.NextNode;&lt;br /&gt;                    }&lt;br /&gt;                    returnValue = nthElement.DataValue;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return returnValue; &lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;    public class Node&lt;br /&gt;    {&lt;br /&gt;        private int dataValue;&lt;br /&gt;        private Node nextNode = null;&lt;br /&gt;&lt;br /&gt;        public Node(int data)&lt;br /&gt;        {&lt;br /&gt;            dataValue = data;&lt;br /&gt;        }&lt;br /&gt;        public Node NextNode&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return nextNode;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                nextNode = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public int DataValue&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return dataValue;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                dataValue = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-4648115669884973838?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/TCEXbJ5FGNY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/4648115669884973838/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=4648115669884973838" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/4648115669884973838" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/4648115669884973838" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/TCEXbJ5FGNY/nth-element-from-last-in-linked-list.html" title="Nth Element from the last in a Linked List" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2007/02/nth-element-from-last-in-linked-list.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-6906571524898876590</id><published>2007-02-25T02:41:00.000-08:00</published><updated>2008-04-25T02:43:29.446-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><category scheme="http://www.blogger.com/atom/ns#" term="DataStructures" /><title type="text">Linked List SORT Algorithm</title><content type="html">If you need a sort algorithm in Linked List. Please check other implementation in my last blog. &lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace Algorithms&lt;br /&gt;{&lt;br /&gt;    public class LinkedList&lt;br /&gt;    {&lt;br /&gt;        private Node head;&lt;br /&gt;&lt;br /&gt;        public LinkedList()&lt;br /&gt;        {&lt;br /&gt;            head = null;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void Sort()&lt;br /&gt;        {&lt;br /&gt;            if (head != null)&lt;br /&gt;            {&lt;br /&gt;                int j = 0;&lt;br /&gt;                Node MinElement = head;&lt;br /&gt;                Node currentElement = MinElement.NextNode;&lt;br /&gt;                while (currentElement != null)&lt;br /&gt;                {&lt;br /&gt;                   &lt;br /&gt;                    if (currentElement.DataValue &lt; MinElement.DataValue)&lt;br /&gt;                    {&lt;br /&gt;                        MinElement = currentElement;&lt;br /&gt;                        Insert(MinElement.DataValue);&lt;br /&gt;                        DeleteAtPosition(j+1);&lt;br /&gt;                    }&lt;br /&gt;                MinElement = MinElement.NextNode;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;    public class Node&lt;br /&gt;    {&lt;br /&gt;        private int dataValue;&lt;br /&gt;        private Node nextNode = null;&lt;br /&gt;&lt;br /&gt;        public Node(int data)&lt;br /&gt;        {&lt;br /&gt;            dataValue = data;&lt;br /&gt;        }&lt;br /&gt;        public Node NextNode&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return nextNode;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                nextNode = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public int DataValue&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return dataValue;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                dataValue = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-6906571524898876590?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/WcYgrbII_uQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/6906571524898876590/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=6906571524898876590" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/6906571524898876590" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/6906571524898876590" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/WcYgrbII_uQ/linked-list-sort-algorithm.html" title="Linked List SORT Algorithm" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2007/02/linked-list-sort-algorithm.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-5252429460805169308</id><published>2007-01-20T02:36:00.000-08:00</published><updated>2008-04-25T02:40:42.356-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><category scheme="http://www.blogger.com/atom/ns#" term="DataStructures" /><title type="text">Linked List in C Sharp.NET</title><content type="html">I got tones of emails, lately for Linklist and Tree data structure implemetation&lt;br /&gt;&lt;br /&gt;Here is a simple Linked List Data structure in C Sharp.NET. A LinkedList will always have two class a LinkedList class and a Node Class. &lt;br /&gt;I have also included most common options to insert and Delete nodes. &lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace Algorithms&lt;br /&gt;{&lt;br /&gt;    public class LinkedList&lt;br /&gt;    {&lt;br /&gt;        private Node head;&lt;br /&gt;&lt;br /&gt;        public LinkedList()&lt;br /&gt;        {&lt;br /&gt;            head = null;&lt;br /&gt;        }&lt;br /&gt;        public void Insert(int dataValue)&lt;br /&gt;        {&lt;br /&gt;            if (head == null)&lt;br /&gt;            {&lt;br /&gt;                Node nodeInsert = new Node(dataValue);&lt;br /&gt;                head = nodeInsert;&lt;br /&gt;                nodeInsert.NextNode = null;&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                Node nodeInsert = new Node(dataValue);&lt;br /&gt;                nodeInsert.NextNode = head;&lt;br /&gt;                head = nodeInsert;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public void InsertAtPosition(Node insertNode, int i)&lt;br /&gt;        {&lt;br /&gt;            if (i == 0)&lt;br /&gt;            {&lt;br /&gt;                insertNode.NextNode = head;&lt;br /&gt;                head = insertNode;&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                Node currentNode = head;&lt;br /&gt;                Node currentNodeNext = head.NextNode;&lt;br /&gt;                for (int j = 0; j &lt; i; j++)&lt;br /&gt;                {&lt;br /&gt;                    currentNode = currentNode.NextNode;&lt;br /&gt;                    currentNodeNext = currentNode.NextNode;&lt;br /&gt;                }&lt;br /&gt;                if (currentNode != null)&lt;br /&gt;                {&lt;br /&gt;                    currentNode.NextNode = insertNode;&lt;br /&gt;                    insertNode.NextNode = currentNodeNext;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public void DeleteAtPosition(int i)&lt;br /&gt;        {&lt;br /&gt;            if (i == 0)&lt;br /&gt;            {&lt;br /&gt;                head = null;&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                Node currentNode = head;&lt;br /&gt;                Node currentNodeNext = head.NextNode;&lt;br /&gt;                for (int j = 0; j &lt; i; j++)&lt;br /&gt;                {&lt;br /&gt;                    currentNode = currentNode.NextNode;&lt;br /&gt;                    currentNodeNext = currentNode.NextNode;&lt;br /&gt;                }&lt;br /&gt;                if (currentNode != null)&lt;br /&gt;                {&lt;br /&gt;                    currentNode.NextNode = currentNodeNext.NextNode;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public bool Delete(Node nodeToDelete)&lt;br /&gt;        {&lt;br /&gt;            bool returnFlag = false;&lt;br /&gt;&lt;br /&gt;            if (head == null)&lt;br /&gt;                returnFlag = false;&lt;br /&gt;            else if (head.Equals(nodeToDelete))&lt;br /&gt;            {&lt;br /&gt;                head = null;&lt;br /&gt;                returnFlag = true;&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                Node checkNode = head;&lt;br /&gt;                Node checkNodeNext = head.NextNode;&lt;br /&gt;                while (checkNodeNext != null)&lt;br /&gt;                {&lt;br /&gt;                    if (checkNodeNext.Equals(nodeToDelete))&lt;br /&gt;                    {&lt;br /&gt;                        checkNode.NextNode = checkNodeNext.NextNode;&lt;br /&gt;                        checkNodeNext = null;&lt;br /&gt;                        returnFlag = true;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return returnFlag;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;        public void Print()&lt;br /&gt;        {&lt;br /&gt;            Node firstNode = head;&lt;br /&gt;            while (firstNode != null)&lt;br /&gt;            {&lt;br /&gt;                Console.Write(firstNode.DataValue + " ");&lt;br /&gt;                firstNode = firstNode.NextNode;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public void Clear()&lt;br /&gt;        {&lt;br /&gt;            Node checkNode = head;&lt;br /&gt;            Node checkNodeNext;&lt;br /&gt;&lt;br /&gt;            while (checkNode != null)&lt;br /&gt;            {&lt;br /&gt;                checkNodeNext = checkNode.NextNode;&lt;br /&gt;                checkNode = null;&lt;br /&gt;                checkNode = checkNodeNext;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;    }&lt;br /&gt;    public class Node&lt;br /&gt;    {&lt;br /&gt;        private int dataValue;&lt;br /&gt;        private Node nextNode = null;&lt;br /&gt;&lt;br /&gt;        public Node(int data)&lt;br /&gt;        {&lt;br /&gt;            dataValue = data;&lt;br /&gt;        }&lt;br /&gt;        public Node NextNode&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return nextNode;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                nextNode = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public int DataValue&lt;br /&gt;        {&lt;br /&gt;            get&lt;br /&gt;            {&lt;br /&gt;                return dataValue;&lt;br /&gt;            }&lt;br /&gt;            set&lt;br /&gt;            {&lt;br /&gt;                dataValue = value;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-5252429460805169308?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/XpnUDOUT7WA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/5252429460805169308/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=5252429460805169308" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/5252429460805169308" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/5252429460805169308" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/XpnUDOUT7WA/linked-list-in-c-sharpnet.html" title="Linked List in C Sharp.NET" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2007/01/linked-list-in-c-sharpnet.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-7221191806545731232</id><published>2006-12-25T02:31:00.000-08:00</published><updated>2008-04-25T02:33:13.215-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="String Manipulation" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><title type="text">First Non-Repeated Character from a UNICODE String using Hash Table</title><content type="html">the only difference here is the input string can be UNICODE (65000 characters) instead of ASCII Code (256 characters) so using a hash table makes more sense &lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt; public static char FirstNonRepeatedHash(string stringToCheck)&lt;br /&gt;        {&lt;br /&gt;            Hashtable cHash = new Hashtable();&lt;br /&gt;            int length = stringToCheck.Length;&lt;br /&gt;            int i = 0;&lt;br /&gt;            bool hashPresent = false;&lt;br /&gt;            char charToReturn = '\0';&lt;br /&gt;&lt;br /&gt;            for (i = 0; i &lt; length; i++)&lt;br /&gt;            {&lt;br /&gt;                hashPresent = cHash.Contains(stringToCheck[i]);&lt;br /&gt;                if (hashPresent)&lt;br /&gt;                {&lt;br /&gt;                    cHash[stringToCheck[i]] = 1 + Convert.ToInt32(cHash[stringToCheck[i]]);&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    cHash.Add(Convert.ToChar(stringToCheck[i]), 1);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            for (i = 0; i &lt; length; i++)&lt;br /&gt;            {&lt;br /&gt;                if (Convert.ToInt32(cHash[stringToCheck[i]]) ==1 )&lt;br /&gt;                {&lt;br /&gt;                    charToReturn = stringToCheck[i];&lt;br /&gt;                    break;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return charToReturn;&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-7221191806545731232?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/WREfWFcQAeQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/7221191806545731232/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=7221191806545731232" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/7221191806545731232" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/7221191806545731232" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/WREfWFcQAeQ/first-non-repeated-character-from.html" title="First Non-Repeated Character from a UNICODE String using Hash Table" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/12/first-non-repeated-character-from.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-1102774340110014012</id><published>2006-12-25T02:28:00.000-08:00</published><updated>2008-04-25T02:30:55.554-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="String Manipulation" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><title type="text">First Non repeated Character in a String using an Array</title><content type="html">Here is how to find the first non repeated character in an a string using an array &lt;br /&gt;the assumption is the String is ASCII other wise check for the hash table function &lt;br /&gt;&lt;br /&gt;For example If the input is "TEETOTALAR" The First non repeated Character is "O"&lt;br /&gt;&lt;br /&gt;&lt;pre lang ="cs"&gt;&lt;br /&gt;public static char FirstNonRepeatedArray(string stringToCheck)&lt;br /&gt;        {&lt;br /&gt;            int length = stringToCheck.Length;&lt;br /&gt;            int i = 0;&lt;br /&gt;            int[] intCollection = new int[256];&lt;br /&gt;            char returnChar = '\0';&lt;br /&gt;&lt;br /&gt;            for (i = 0; i &lt; length; i++)&lt;br /&gt;            {&lt;br /&gt;                intCollection[stringToCheck[i]] = intCollection[stringToCheck[i]] + 1;&lt;br /&gt;            }&lt;br /&gt;            for (i = 0; i &lt; length; i++)&lt;br /&gt;            {&lt;br /&gt;                if (intCollection[stringToCheck[i]] == 1)&lt;br /&gt;                {&lt;br /&gt;                    returnChar = stringToCheck[i];&lt;br /&gt;                    break;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return returnChar;&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-1102774340110014012?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/lt3BvkWTQKg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/1102774340110014012/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=1102774340110014012" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/1102774340110014012" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/1102774340110014012" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/lt3BvkWTQKg/first-non-repeated-character-in-string.html" title="First Non repeated Character in a String using an Array" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/12/first-non-repeated-character-in-string.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-7877495016267431970</id><published>2006-11-25T02:25:00.000-08:00</published><updated>2008-04-25T02:27:27.435-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="String Manipulation" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><title type="text">String is a Palindrome !</title><content type="html">How to check if a string is a palindrome ?&lt;br /&gt;You can change the code a bit to reverse an array &lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;public static bool IsPalindrome(string s)&lt;br /&gt;        {&lt;br /&gt;            int length =s.Length;&lt;br /&gt;            char[] chrArray = s.ToCharArray();&lt;br /&gt;            if (length == 0)&lt;br /&gt;                return false;&lt;br /&gt;            if (length == 1)&lt;br /&gt;                return true;&lt;br /&gt;&lt;br /&gt;            int start = 0;&lt;br /&gt;            int end = length - 1;&lt;br /&gt;&lt;br /&gt;            while (end &gt; start)&lt;br /&gt;            {&lt;br /&gt;                if (chrArray[start] == chrArray[end])&lt;br /&gt;                {&lt;br /&gt;                    start++;&lt;br /&gt;                    end--;&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    return false;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            return true;&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-7877495016267431970?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/hxWz4ebG02Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/7877495016267431970/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=7877495016267431970" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/7877495016267431970" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/7877495016267431970" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/hxWz4ebG02Q/string-is-palindrome.html" title="String is a Palindrome !" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2008/04/string-is-palindrome.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-7123900358143654178</id><published>2006-10-25T02:22:00.000-07:00</published><updated>2008-04-25T02:25:09.530-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="String Manipulation" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><title type="text">Remove Characters from a String with limited Memory</title><content type="html">How about, If we don't have enough memory we have to use a single array.&lt;br /&gt;Here is how to do that with limited memory&lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;  public static string RemoveCharactersLimited(char[] s, string removeChars)&lt;br /&gt;        {&lt;br /&gt;            int i = 0, j = 0;&lt;br /&gt;&lt;br /&gt;            int lengthC = removeChars.Length;&lt;br /&gt;            int lengthS = s.Length;&lt;br /&gt;            int[] intCollection = new int[256];&lt;br /&gt;            &lt;br /&gt;            for (i = 0; i &lt; lengthC; i++)&lt;br /&gt;            {&lt;br /&gt;                intCollection[removeChars[i]] = 1;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            i = j = 0;&lt;br /&gt;            for (i = 0; i &lt; lengthS; i++)&lt;br /&gt;            {&lt;br /&gt;                if (intCollection[s[i]] != 1)&lt;br /&gt;                {&lt;br /&gt;                    s[j] = s[i];&lt;br /&gt;                    j++;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            while (j &lt; lengthS)&lt;br /&gt;            {&lt;br /&gt;                s[j] = '\0';&lt;br /&gt;                j++;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            return new string(s);&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-7123900358143654178?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/v7sckiY_tT0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/7123900358143654178/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=7123900358143654178" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/7123900358143654178" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/7123900358143654178" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/v7sckiY_tT0/remove-characters-from-string-with.html" title="Remove Characters from a String with limited Memory" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/10/remove-characters-from-string-with.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-6569613161412604583</id><published>2006-10-25T02:20:00.000-07:00</published><updated>2008-04-25T02:22:27.027-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="String Manipulation" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><title type="text">Remove Characters from String C#.NET</title><content type="html">The string manipulation function removes a set of characters fromthe input string &lt;br /&gt;&lt;br /&gt;For example &lt;br /&gt;&lt;br /&gt;Removing "RT" from "ROBERT FROST" will give you  "OBE FOS"&lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt; public static string RemoveCharacters(string s, string removeChars)&lt;br /&gt;        {&lt;br /&gt;            int i=0,j=0;&lt;br /&gt;            &lt;br /&gt;            int lengthC = removeChars.Length;&lt;br /&gt;            int lengthS = s.Length;&lt;br /&gt;            int[] intCollection = new int[256];&lt;br /&gt;            char[] s2 = new char[lengthS];&lt;br /&gt;&lt;br /&gt;            for (i = 0; i &lt; lengthC; i++)&lt;br /&gt;            {&lt;br /&gt;                intCollection[removeChars[i]] = 1;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            i = j = 0;&lt;br /&gt;            for (i = 0; i &lt; lengthS; i++)&lt;br /&gt;            {&lt;br /&gt;                if (intCollection[s[i]] != 1)&lt;br /&gt;                {&lt;br /&gt;                    s2[j] = s[i];&lt;br /&gt;                    j++;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            return new string(s2); &lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-6569613161412604583?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/RiB5Lmtgr20" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/6569613161412604583/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=6569613161412604583" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/6569613161412604583" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/6569613161412604583" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/RiB5Lmtgr20/remove-characters-from-string-cnet.html" title="Remove Characters from String C#.NET" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/10/remove-characters-from-string-cnet.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-5520589222563409291</id><published>2006-09-25T02:17:00.000-07:00</published><updated>2008-04-25T02:19:15.797-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="String Manipulation" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><title type="text">AtoI function - String to Integer in C# .NET</title><content type="html">If you ever want to convert a string to integer, you have to go through the following checks &lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt; public static int StringToInt(string s)&lt;br /&gt;        {&lt;br /&gt;            int length = s.Length;&lt;br /&gt;            int i = 0;&lt;br /&gt;            int lastNumber = 0;&lt;br /&gt;            int returnNumber = 0;&lt;br /&gt;            bool numberNegative = false;&lt;br /&gt;            int startPoint = 0;&lt;br /&gt;&lt;br /&gt;            if (s[0] == '-')&lt;br /&gt;            {&lt;br /&gt;                numberNegative = true;&lt;br /&gt;                startPoint = 1;&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            for (i = startPoint; i &lt; length; i++)&lt;br /&gt;            {&lt;br /&gt;                if (s[i] == ' ')&lt;br /&gt;                {&lt;br /&gt;                    continue;&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    if ((s[i] &gt;= '0') &amp;&amp; s[i] &lt;= '9')&lt;br /&gt;                    {&lt;br /&gt;                        returnNumber = s[i] - '0';&lt;br /&gt;                        if (i &gt; 0) lastNumber = lastNumber * 10;&lt;br /&gt;                        lastNumber = lastNumber + returnNumber;&lt;br /&gt;                    }&lt;br /&gt;                    else&lt;br /&gt;                    {&lt;br /&gt;                        break;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            if (numberNegative) &lt;br /&gt;                lastNumber = -1 * lastNumber;&lt;br /&gt;&lt;br /&gt;            return lastNumber;&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-5520589222563409291?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/vQa9VtgMYmk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/5520589222563409291/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=5520589222563409291" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/5520589222563409291" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/5520589222563409291" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/vQa9VtgMYmk/string-to-integer-in-c-net.html" title="AtoI function - String to Integer in C# .NET" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/09/string-to-integer-in-c-net.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-415683270686472515</id><published>2006-08-20T02:10:00.000-07:00</published><updated>2008-04-25T02:16:13.767-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="String Manipulation" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><title type="text">Reverse Words in C Sharp.NET</title><content type="html">Lately I started some string manipulation in C Sharp, which you will see in the series to come. Please add your comments suggestions. These are optimized for performance   &lt;br /&gt;&lt;br /&gt;Input: Robert Frost &lt;br /&gt;output is Frost Robert&lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;  public static string ReverseWord(string s)&lt;br /&gt;        {&lt;br /&gt;            int length = s.Length;&lt;br /&gt;            int i = 0;&lt;br /&gt;            &lt;br /&gt;            string[] splittedArray = s.Split(' ');&lt;br /&gt;            StringBuilder sb = new StringBuilder();&lt;br /&gt;            for (i = splittedArray.Length - 1; i &gt;= 0; i--)&lt;br /&gt;            {&lt;br /&gt;                if (i != 0)&lt;br /&gt;                    sb.Append(splittedArray[i] + ' ');&lt;br /&gt;                else&lt;br /&gt;                    sb.Append(splittedArray[i]); &lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            return sb.ToString();&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here is another method to do the same using character array&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;public static string ReverseWordChar(string s)&lt;br /&gt;        {&lt;br /&gt;            int length = s.Length;&lt;br /&gt;            int i = 0,j=0;&lt;br /&gt;            StringBuilder sb= new StringBuilder(); &lt;br /&gt;            int startPos = length - 1;&lt;br /&gt;&lt;br /&gt;            for (i = length-1; i &gt;=0;i--)&lt;br /&gt;            {&lt;br /&gt;                if (s[i] == ' ')&lt;br /&gt;                {&lt;br /&gt;                    for (j = i+1; j &lt;= startPos; j++)&lt;br /&gt;                    {&lt;br /&gt;                        sb.Append(s[j]);&lt;br /&gt;                    }&lt;br /&gt;                    startPos = i;&lt;br /&gt;                    sb.Append(' ');&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            for (j = 0; j &lt; startPos; j++)&lt;br /&gt;            {&lt;br /&gt;                sb.Append(s[j]);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            return sb.ToString();&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-415683270686472515?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/XoucuWEt5i4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/415683270686472515/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=415683270686472515" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/415683270686472515" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/415683270686472515" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/XoucuWEt5i4/reverse-word-in-c-sharpnet.html" title="Reverse Words in C Sharp.NET" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/08/reverse-word-in-c-sharpnet.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-117778649099007377</id><published>2006-07-25T02:07:00.000-07:00</published><updated>2008-04-25T02:09:48.305-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><category scheme="http://www.blogger.com/atom/ns#" term="Maths" /><title type="text">Factorial of a number using C #</title><content type="html">Finding the factorial of a number in C#&lt;br /&gt;the code is meant for finding the factorial both recursive and non recursive&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt; public static int Factorial(int n)&lt;br /&gt;        {&lt;br /&gt;            int FactorialValue = 1;&lt;br /&gt;            for (int i = n; i &gt; 0; i--)&lt;br /&gt;            {&lt;br /&gt;                FactorialValue = FactorialValue * i;&lt;br /&gt;            }&lt;br /&gt;            return FactorialValue;&lt;br /&gt;        }&lt;br /&gt;        public static int recursiveFactorial(int n)&lt;br /&gt;        {&lt;br /&gt;            if (n &gt; 1)&lt;br /&gt;            {&lt;br /&gt;                return n * recursiveFactorial(n - 1);&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                return 1;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        public static int recursiveFactorialIntermediate(int n, int[] nArray)&lt;br /&gt;        {&lt;br /&gt;            if (n &gt; 1)&lt;br /&gt;            {&lt;br /&gt;                nArray[n - 1] = n * recursiveFactorialIntermediate(n - 1, nArray);&lt;br /&gt;                return nArray[n - 1];&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                return 1;&lt;br /&gt;            }&lt;br /&gt;        } &lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-117778649099007377?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/ggimkT1uO3o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/117778649099007377/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=117778649099007377" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/117778649099007377" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/117778649099007377" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/ggimkT1uO3o/factorial-of-number-using-c.html" title="Factorial of a number using C #" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/07/factorial-of-number-using-c.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-2714775557355825838</id><published>2006-06-25T02:05:00.000-07:00</published><updated>2008-04-25T02:07:09.713-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><category scheme="http://www.blogger.com/atom/ns#" term="DataStructures" /><title type="text">largest element in the array by comparing to All - C#</title><content type="html">To find out the largest element in the array by comparing to All elements method &lt;br /&gt;This methd has an Big Oh notation performance of O(n&lt;sup&gt;2&lt;/sup&gt;)&lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt; public static int GetIndexLargestCompareToAll(int[] numbers)&lt;br /&gt;        {&lt;br /&gt;            int currentMaxIndex = -1;&lt;br /&gt;            int length = numbers.Length;&lt;br /&gt;            bool isMax = false;&lt;br /&gt;&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                if (length == 0)&lt;br /&gt;                    currentMaxIndex = -1;&lt;br /&gt;                else if (length == 1)&lt;br /&gt;                    currentMaxIndex = 0;&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    for (int i = 0; i &lt; length; i++)&lt;br /&gt;                    {&lt;br /&gt;                        isMax = true;&lt;br /&gt;                        for (int j = 0; j &lt; length; j++)&lt;br /&gt;                        {&lt;br /&gt;                            if (numbers[j] &gt; numbers[i])&lt;br /&gt;                                isMax = false;&lt;br /&gt;                        }&lt;br /&gt;                        if (isMax)&lt;br /&gt;                            currentMaxIndex = i;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            catch (Exception)&lt;br /&gt;            {&lt;br /&gt;                currentMaxIndex = -1;&lt;br /&gt;            }&lt;br /&gt;            return currentMaxIndex;&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-2714775557355825838?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/ZAa8zMsZYkM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/2714775557355825838/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=2714775557355825838" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/2714775557355825838" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/2714775557355825838" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/ZAa8zMsZYkM/largest-element-in-array-by-comparing.html" title="largest element in the array by comparing to All - C#" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/06/largest-element-in-array-by-comparing.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-1283439813441470486</id><published>2006-06-25T02:02:00.000-07:00</published><updated>2008-04-25T02:05:25.904-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><category scheme="http://www.blogger.com/atom/ns#" term="DataStructures" /><title type="text">Largest Element in the Array using C #</title><content type="html">To find out the largest element in the array by comparing to the Max method &lt;br /&gt;This methd has an Big Oh notation performance of O(n)&lt;br /&gt;&lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;  public static int GetIndexLargestCompareToMax(int[] numbers)&lt;br /&gt;        {&lt;br /&gt;            int currentMaxIndex = -1;&lt;br /&gt;            int length = numbers.Length;&lt;br /&gt;&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                if (length == 0)&lt;br /&gt;                    currentMaxIndex = -1;&lt;br /&gt;                else if (length == 1)&lt;br /&gt;                    currentMaxIndex = 0;&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    currentMaxIndex = 0;&lt;br /&gt;                    for (int j = 1; j &lt; length; j++)&lt;br /&gt;                    {&lt;br /&gt;                        if (numbers[j] &gt; numbers[currentMaxIndex])&lt;br /&gt;                        {&lt;br /&gt;                            currentMaxIndex = j;&lt;br /&gt;                        }&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            catch (Exception)&lt;br /&gt;            {&lt;br /&gt;                currentMaxIndex = -1;&lt;br /&gt;            }&lt;br /&gt;            return currentMaxIndex;&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-1283439813441470486?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/C166TauHX8c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/1283439813441470486/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=1283439813441470486" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/1283439813441470486" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/1283439813441470486" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/C166TauHX8c/largest-element-in-array-using-c.html" title="Largest Element in the Array using C #" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/06/largest-element-in-array-using-c.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-6863012142272705014</id><published>2006-05-25T01:49:00.000-07:00</published><updated>2008-04-25T01:55:53.788-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><title type="text">Calendar Object in C Sharp.NET</title><content type="html">A friend of mine asked me to create a calendar object in C Sharp. I thought it might be useful to others too &lt;br /&gt;&lt;br /&gt;So here is a one for you&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;pre lang="cs"&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;namespace Algorithms&lt;br /&gt;{&lt;br /&gt;    public class Calendar&lt;br /&gt;    {&lt;br /&gt;        private DateTime currentDate;&lt;br /&gt;        private int currentDay;&lt;br /&gt;        private int currentDayWeek;&lt;br /&gt;        private int currentMonth;&lt;br /&gt;        private int currentYear;&lt;br /&gt;        private bool leapYear;&lt;br /&gt;&lt;br /&gt;        public Calendar()&lt;br /&gt;        {&lt;br /&gt;            DateTime cDate = DateTime.Now;&lt;br /&gt;            currentDate = cDate;&lt;br /&gt;            currentDay = cDate.Day;&lt;br /&gt;            currentDayWeek = Convert.ToInt32(cDate.DayOfWeek);&lt;br /&gt;            currentMonth = cDate.Month;&lt;br /&gt;            currentYear = cDate.Year;&lt;br /&gt;        }&lt;br /&gt;        public Calendar(DateTime cDate)&lt;br /&gt;        {&lt;br /&gt;            currentDate = cDate;&lt;br /&gt;            currentDay = cDate.Day;&lt;br /&gt;            currentDayWeek = Convert.ToInt32(cDate.DayOfWeek);&lt;br /&gt;            currentMonth = cDate.Month;&lt;br /&gt;            currentYear = cDate.Year;&lt;br /&gt;            &lt;br /&gt;            if (currentYear % 400==0)&lt;br /&gt;                leapYear = true;&lt;br /&gt;            else if (currentYear % 100==0)&lt;br /&gt;                leapYear = false;&lt;br /&gt;            else if (currentYear % 4==0)&lt;br /&gt;                leapYear = true;&lt;br /&gt;            else&lt;br /&gt;                leapYear = false;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;        public DateTime CurrentDate&lt;br /&gt;        {&lt;br /&gt;            get { return currentDate; }&lt;br /&gt;            set { currentDate = value;}&lt;br /&gt;        }&lt;br /&gt;        public int CurrentDay&lt;br /&gt;        {&lt;br /&gt;            get { return currentDay; }&lt;br /&gt;            set { currentDay = value; }&lt;br /&gt;        }&lt;br /&gt;        public int CurrentDayWeek&lt;br /&gt;        {&lt;br /&gt;            get { return currentDayWeek; }&lt;br /&gt;            set { currentDayWeek = value; }&lt;br /&gt;        }&lt;br /&gt;        public int CurrentMonth&lt;br /&gt;        {&lt;br /&gt;            get { return currentMonth; }&lt;br /&gt;            set { currentMonth = value; }&lt;br /&gt;        }&lt;br /&gt;        public int CurrentYear&lt;br /&gt;        {&lt;br /&gt;            get { return currentYear; }&lt;br /&gt;            set { currentYear= value; }&lt;br /&gt;        }&lt;br /&gt;        public bool LeapYear&lt;br /&gt;        {&lt;br /&gt;            get { return leapYear; }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void Display()&lt;br /&gt;        {&lt;br /&gt;            Console.Write("== Calendar ==\n");&lt;br /&gt;&lt;br /&gt;            DateTime firstDay = currentDate.AddDays(1 - currentDay);&lt;br /&gt;            string dayDisplay ="";&lt;br /&gt;&lt;br /&gt;            if (Convert.ToInt32(firstDay.DayOfWeek) == 0)&lt;br /&gt;            {&lt;br /&gt;                dayDisplay = "Mo Tu We Th Fr Sa Su";&lt;br /&gt;            }&lt;br /&gt;            else if (Convert.ToInt32(firstDay.DayOfWeek) == 1)&lt;br /&gt;            {&lt;br /&gt;                dayDisplay = "Tu We Th Fr Sa Su Mo";&lt;br /&gt;            }&lt;br /&gt;            else if (Convert.ToInt32(firstDay.DayOfWeek) == 2)&lt;br /&gt;            {&lt;br /&gt;                dayDisplay = "We Th Fr Sa Su Mo Tu";&lt;br /&gt;            }&lt;br /&gt;            else if (Convert.ToInt32(firstDay.DayOfWeek) == 3)&lt;br /&gt;            {&lt;br /&gt;                dayDisplay = "Th Fr Sa Su Mo Tu We";&lt;br /&gt;            }&lt;br /&gt;            else if (Convert.ToInt32(firstDay.DayOfWeek) == 4)&lt;br /&gt;            {&lt;br /&gt;                dayDisplay = "Fr Sa Su Mo Tu We Th";&lt;br /&gt;            }&lt;br /&gt;            else if (Convert.ToInt32(firstDay.DayOfWeek) == 5)&lt;br /&gt;            {&lt;br /&gt;                dayDisplay = "Sa Su Mo Tu We Th Fr";&lt;br /&gt;            }&lt;br /&gt;            else if (Convert.ToInt32(firstDay.DayOfWeek) == 6)&lt;br /&gt;            {&lt;br /&gt;                dayDisplay = "Su Mo Tu We Th Fr Sa";&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            Console.Write(dayDisplay + "\n");&lt;br /&gt;&lt;br /&gt;            // Common content&lt;br /&gt;            Console.Write("01 02 03 04 05 06 07\n");&lt;br /&gt;            Console.Write("08 09 10 11 12 13 14\n");&lt;br /&gt;            Console.Write("15 16 17 18 19 20 21\n");&lt;br /&gt;            Console.Write("22 23 24 25 26 27 28\n");&lt;br /&gt;&lt;br /&gt;            //Variable Date&lt;br /&gt;&lt;br /&gt;            // Feb 2 &lt;br /&gt;            if (currentMonth == 2)&lt;br /&gt;            {&lt;br /&gt;                if (leapYear)// Feb 2 leap year&lt;br /&gt;                Console.Write("29 00 00 00 00 00 00\n");&lt;br /&gt;                else&lt;br /&gt;                Console.Write("00 00 00 00 00 00 00\n");&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            if ((currentMonth == 4) || (currentMonth == 6) || (currentMonth == 9) || (currentMonth == 11))&lt;br /&gt;            {&lt;br /&gt;                // 4, 6, 9, 11&lt;br /&gt;                Console.Write("29 30 00 00 00 00 00\n");&lt;br /&gt;            }&lt;br /&gt;            if ((currentMonth == 1) || (currentMonth == 3) || (currentMonth == 5) || (currentMonth == 7) || (currentMonth == 8) || (currentMonth == 10) || (currentMonth == 12))&lt;br /&gt;            {&lt;br /&gt;                // 1,3,5,7,8,10,12&lt;br /&gt;                Console.Write("29 30 31 00 00 00 00\n");&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-6863012142272705014?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/ONP6D42VZfI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/6863012142272705014/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=6863012142272705014" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/6863012142272705014" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/6863012142272705014" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/ONP6D42VZfI/calendar-object-in-c-sharpnet.html" title="Calendar Object in C Sharp.NET" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/05/calendar-object-in-c-sharpnet.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-5641926286756111410</id><published>2006-04-27T01:40:00.000-07:00</published><updated>2008-04-25T01:42:08.216-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><title type="text">LEARN Your Way to MCAD Excellence</title><content type="html">If you want to learn all about the .Net Windows, Web, and Xml Web Services and also get an MCAD certification as bonus.&lt;br /&gt;&lt;br /&gt;The following tips have helped me and 10's of my friends.&lt;br /&gt;&lt;br /&gt;I will recommend THESE and ONLY THESE books in the FOLLOWING ORDER&lt;br /&gt;&lt;br /&gt;The ORDER of the exam is also VERY IMPORTANT and it should be&lt;br /&gt;&lt;br /&gt;1. Windows&lt;br /&gt;2. Web&lt;br /&gt;3. XML Web services&lt;br /&gt;&lt;br /&gt;For each exam FIRST you must study completely the MS Press book (100%) and THEN AND ONLY THEN study Amit Kalani's one.&lt;br /&gt;&lt;br /&gt;All the best !"&lt;br /&gt;&lt;br /&gt;Amazon Link &lt;a href="http://www.amazon.com/LEARN-Your-Way-to-MCAD-Excellence/lm/R3RLCGPSYBNR76"&gt;LEARN Your Way to MCAD Excellence&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-5641926286756111410?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/RRQROLhe_mo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/5641926286756111410/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=5641926286756111410" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/5641926286756111410" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/5641926286756111410" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/RRQROLhe_mo/learn-your-way-to-mcad-excellence.html" title="LEARN Your Way to MCAD Excellence" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/04/learn-your-way-to-mcad-excellence.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-9032260694705269181.post-4869876895919168595</id><published>2006-04-25T00:38:00.000-07:00</published><updated>2008-04-25T00:46:20.501-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Technology" /><category scheme="http://www.blogger.com/atom/ns#" term="News" /><category scheme="http://www.blogger.com/atom/ns#" term="CSharpTricks" /><title type="text">C Sharp Tricks - First Post</title><content type="html">In this website you will find tips, tricks, gotchas and some recipes for windows as well as web applications. This site is intended to share some of the things I've developed, some source code, articles and some samples I've wrote. Please leave your comments to improve. Thanks and I hope you will find them as useful as i do - Rajesh Lal.&lt;br /&gt;&lt;br /&gt;Along with C sharp you will also find the way it interacts with the related technologies.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Windows Vista&lt;/li&gt;&lt;br /&gt;&lt;li&gt;ASP.Net&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Microsoft SQL Server&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Javascript, AJAX, Atlas&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Web 2.0 , CSS&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Installation / deployment / orca&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Mobile devices etc&lt;/li&gt;&lt;br /&gt;&lt;li&gt;C# foundation - data structures etc&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/9032260694705269181-4869876895919168595?l=www.csharptricks.com%2Fblog'/&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CSharpTricksAndTips/~4/aVOJiDvWam8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/4869876895919168595/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="https://www.blogger.com/comment.g?blogID=9032260694705269181&amp;postID=4869876895919168595" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/4869876895919168595" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9032260694705269181/posts/default/4869876895919168595" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/CSharpTricksAndTips/~3/aVOJiDvWam8/c-sharp-tricks-first-post.html" title="C Sharp Tricks - First Post" /><author><name>Rajesh Lal</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.csharptricks.com/blog/2006/04/c-sharp-tricks-first-post.html</feedburner:origLink></entry></feed>
