How to create Guid value in C#?

A Globally Unique Identifier or Guid represents a 128-bit identification number that is mathematically guaranteed to be unique across multiple systems and distributed applications. The total number of unique keys (approximately 3.40282366×10³?) is so large that the probability of generating the same number twice is negligible.

GUIDs are commonly used in applications where unique identification is critical, such as database primary keys, transaction IDs, or session identifiers. They are typically displayed as a sequence of hexadecimal digits like 3F2504E0-4F89-11D3-9A0C-0305E82C3301.

Syntax

The Guid structure is present in the System namespace. Following are the most common ways to create a Guid −

Guid newGuid = Guid.NewGuid();
Guid emptyGuid = Guid.Empty;
Guid parsedGuid = new Guid("3F2504E0-4F89-11D3-9A0C-0305E82C3301");

Using Guid.NewGuid() Method

The most common method to generate a new unique Guid is using the Guid.NewGuid() static method −

using System;

class Program {
   static void Main(string[] args) {
      Guid demoGuid = Guid.NewGuid();
      Console.WriteLine("First GUID: " + demoGuid);
      Console.WriteLine("Second GUID: " + Guid.NewGuid());
      Console.WriteLine("Third GUID: " + Guid.NewGuid());
   }
}

The output of the above code is −

First GUID: 3a251d82-e8ce-442f-9e42-5285653a5e8a
Second GUID: 09081b06-26e2-49fa-8e96-93748a99defa
Third GUID: f47ac10b-58cc-4372-a567-0e02b2c3d479

Creating Empty and Specific Guids

You can also create an empty Guid or parse a specific Guid from a string −

using System;

class Program {
   static void Main(string[] args) {
      // Empty GUID
      Guid emptyGuid = Guid.Empty;
      Console.WriteLine("Empty GUID: " + emptyGuid);
      
      // Parse from string
      string guidString = "12345678-1234-5678-9abc-123456789abc";
      Guid parsedGuid = new Guid(guidString);
      Console.WriteLine("Parsed GUID: " + parsedGuid);
      
      // Check if GUID is empty
      Console.WriteLine("Is empty: " + (emptyGuid == Guid.Empty));
   }
}

The output of the above code is −

Empty GUID: 00000000-0000-0000-0000-000000000000
Parsed GUID: 12345678-1234-5678-9abc-123456789abc
Is empty: True

Common Guid Operations

The Guid structure provides several useful methods for working with GUIDs −

using System;

class Program {
   static void Main(string[] args) {
      Guid guid1 = Guid.NewGuid();
      Guid guid2 = Guid.NewGuid();
      
      Console.WriteLine("GUID 1: " + guid1);
      Console.WriteLine("GUID 2: " + guid2);
      Console.WriteLine("Are equal: " + guid1.Equals(guid2));
      Console.WriteLine("Hash code: " + guid1.GetHashCode());
      Console.WriteLine("Uppercase: " + guid1.ToString().ToUpper());
      Console.WriteLine("Without hyphens: " + guid1.ToString("N"));
   }
}

The output of the above code is −

GUID 1: a1b2c3d4-e5f6-7890-abcd-ef1234567890
GUID 2: f9e8d7c6-b5a4-9382-7160-fedcba987654
Are equal: False
Hash code: 123456789
Uppercase: A1B2C3D4-E5F6-7890-ABCD-EF1234567890
Without hyphens: a1b2c3d4e5f67890abcdef1234567890

Conclusion

The Guid structure in C# provides a reliable way to generate globally unique identifiers using Guid.NewGuid(). GUIDs are essential for creating unique keys in distributed systems, databases, and applications where collision-free identification is critical.

Updated on: 2026-03-17T07:04:36+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements