Query segments

This topic explains how to query segments. To find a specific segment, you use the PersonalizationManager class and LINQ queries.

Find a segment by ID

To find a specific segment by ID, you use the GetSegments method:

C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telerik.Sitefinity.Personalization.Impl;
using Telerik.Sitefinity.Personalization.Impl.Model;

namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Personalization
{
   public partial class PersonalizationSnippets
   {
       public static Segment FindSegmentById(Guid segmentId)
       {
           var personalizationManager = PersonalizationManager.GetManager();
           Segment segment = personalizationManager.GetSegments().Where(s => s.Id == segmentId).FirstOrDefault();
           return segment;
       }
   }
}

To find segment, you use the GetSegments method and filter based on the Id property. If the segment does not exist, the method returns null. To find the segment, you can also use the GetSegment method:

C#
using System;
using System.Linq;
using Telerik.Sitefinity.Personalization.Impl;
using Telerik.Sitefinity.Personalization.Impl.Model;

namespace SitefinityWebApp
{
   public class PersonalizationSnippets2
   {
       public static Segment FindSegmentById(Guid segmentId)
       {
           var personalizationManager = PersonalizationManager.GetManager();
           Segment segment = personalizationManager.GetSegment(segmentId);

           return segment;
       }
   }
}

Find a segment by title

To find a specific segment by its title, first, you use the GetSegments method. Then you filter based on the Title property:

C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telerik.Sitefinity.Personalization.Impl;
using Telerik.Sitefinity.Personalization.Impl.Model;

namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Personalization
{
   public partial class PersonalizationSnippets
   {
       public static Segment FindSegmentByTitle(string segmentName)
       {
           var personalizationManager = PersonalizationManager.GetManager();
           Segment segment = personalizationManager.GetSegments().Where(s => s.Name == segmentName).FirstOrDefault();
           return segment;
       }
   }
}

Get all segments

To get all segments, you use the GetSegments method without any filtering:

C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Telerik.Sitefinity.Personalization.Impl;
using Telerik.Sitefinity.Personalization.Impl.Model;

namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Personalization
{
   public partial class PersonalizationSnippets
   {
       public static IQueryable<Segment> FindAllSegments()
       {
           var personalizationManager = PersonalizationManager.GetManager();
           var allSegments = personalizationManager.GetSegments();
           return allSegments;
       }
   }
}
Want to learn more?
Enhance your Sitefinity skills by enrolling in free training sessions. Become Sitefinity certified through Progress Education Community to strengthen your professional credentials.