# GrammarRule Namespace: LLama.Grammars A single rule in a [Grammar](./llama.grammars.grammar.md) ```csharp public sealed class GrammarRule : System.IEquatable`1[[LLama.Grammars.GrammarRule, LLamaSharp, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null]] ``` Inheritance [Object](https://docs.microsoft.com/en-us/dotnet/api/system.object) → [GrammarRule](./llama.grammars.grammarrule.md)
Implements [IEquatable<GrammarRule>](https://docs.microsoft.com/en-us/dotnet/api/system.iequatable-1) ## Properties ### **Name** Name of this rule ```csharp public string Name { get; } ``` #### Property Value [String](https://docs.microsoft.com/en-us/dotnet/api/system.string)
### **Elements** The elements of this grammar rule ```csharp public IReadOnlyList Elements { get; } ``` #### Property Value [IReadOnlyList<LLamaGrammarElement>](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1)
## Constructors ### **GrammarRule(String, IReadOnlyList<LLamaGrammarElement>)** Create a new GrammarRule containing the given elements ```csharp public GrammarRule(string name, IReadOnlyList elements) ``` #### Parameters `name` [String](https://docs.microsoft.com/en-us/dotnet/api/system.string)
`elements` [IReadOnlyList<LLamaGrammarElement>](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.ireadonlylist-1)
#### Exceptions [ArgumentException](https://docs.microsoft.com/en-us/dotnet/api/system.argumentexception)
## Methods ### **ToString()** ```csharp public string ToString() ``` #### Returns [String](https://docs.microsoft.com/en-us/dotnet/api/system.string)
### **GetHashCode()** ```csharp public int GetHashCode() ``` #### Returns [Int32](https://docs.microsoft.com/en-us/dotnet/api/system.int32)
### **Equals(Object)** ```csharp public bool Equals(object obj) ``` #### Parameters `obj` [Object](https://docs.microsoft.com/en-us/dotnet/api/system.object)
#### Returns [Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)
### **Equals(GrammarRule)** ```csharp public bool Equals(GrammarRule other) ``` #### Parameters `other` [GrammarRule](./llama.grammars.grammarrule.md)
#### Returns [Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean)
### **<Clone>$()** ```csharp public GrammarRule $() ``` #### Returns [GrammarRule](./llama.grammars.grammarrule.md)