"natural sorting linq" Code Answer's

You're definitely familiar with the best coding language C# that developers use to develop their projects and they get all their queries like "natural sorting linq" answered properly. Developers are finding an appropriate answer about natural sorting linq related to the C# coding language. By visiting this online portal developers get answers concerning C# codes question like natural sorting linq. Enter your desired code related query in the search bar and get every piece of information about C# code related question on natural sorting linq. 

natural sorting linq

By Quaint QueleaQuaint Quelea on Dec 10, 2020
    public class NaturalSortComparer<T> : IComparer<string>, IDisposable
    {
        private bool isAscending;

        public NaturalSortComparer(bool inAscendingOrder = true)
        {
            this.isAscending = inAscendingOrder;
        }

        #region IComparer<string> Members

        public int Compare(string x, string y)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region IComparer<string> Members

        int IComparer<string>.Compare(string x, string y)
        {
            if (x == y)
                return 0;

            string[] x1, y1;

            if (!table.TryGetValue(x, out x1))
            {
                x1 = Regex.Split(x.Replace(" ", ""), "([0-9]+)");
                table.Add(x, x1);
            }

            if (!table.TryGetValue(y, out y1))
            {
                y1 = Regex.Split(y.Replace(" ", ""), "([0-9]+)");
                table.Add(y, y1);
            }

            int returnVal = 0;

            for (int i = 0; i < x1.Length && i < y1.Length; i++)
            {
                if (x1[i] != y1[i])
                {
                    returnVal = PartCompare(x1[i], y1[i]);
                    return isAscending ? returnVal : -returnVal;
                }
            }

            if (y1.Length > x1.Length)
            {
                returnVal = 1;
            }
            else if (x1.Length > y1.Length)
            { 
                returnVal = -1; 
            }
            else
            {
                returnVal = 0;
            }

            return isAscending ? returnVal : -returnVal;
        }

        private static int PartCompare(string left, string right)
        {
            int x, y;
            if (!int.TryParse(left, out x))
                return left.CompareTo(right);

            if (!int.TryParse(right, out y))
                return left.CompareTo(right);

            return x.CompareTo(y);
        }

        #endregion

        private Dictionary<string, string[]> table = new Dictionary<string, string[]>();

        public void Dispose()
        {
            table.Clear();
            table = null;
        }
    }

'Example: List<Photo> photos = DataManager.MainContext.Photos
'     .Where(item => item.PhotoFilename != null)
'     .AsEnumerable() !Important
'     .OrderBy(item => item.PhotoFilename, new NaturalSortComparer<string>())
'     .ToList();

Source: zootfroot.blogspot.com

Add Comment

0

All those coders who are working on the C# based application and are stuck on natural sorting linq can get a collection of related answers to their query. Programmers need to enter their query on natural sorting linq related to C# code and they'll get their ambiguities clear immediately. On our webpage, there are tutorials about natural sorting linq for the programmers working on C# code while coding their module. Coders are also allowed to rectify already present answers of natural sorting linq while working on the C# language code. Developers can add up suggestions if they deem fit any other answer relating to "natural sorting linq". Visit this developer's friendly online web community, CodeProZone, and get your queries like natural sorting linq resolved professionally and stay updated to the latest C# updates. 

C# answers related to "natural sorting linq"

View All C# queries

C# queries related to "natural sorting linq"

natural sorting linq c# linq sorting sequential guids sorting array in c# Linq - Random Elements c# linq lambda left join linq query select top 1 c# convert int to string in linq query c# linq compare dates without time linq unique count property c# linq extension methods left join linq select count group by c# c# linq check for duplicate Group by linq multiple columns C# System Linq c# C# .NET Core linq Distinct c# linq select from object list C# linq include c# left join linq c# linq to dictionary c# datatable to linq c# linq select only unique values from list C# linq group by linq where id in list linq c# where condition c# linq order by multiple columns linq get a dictionary key and value c# linq query select where c# how to use distinct in linq query in c# foreach c# linq example linq foreach c# linq c# linq get objects of specific type in list join two tables in linq c#inner join C# linq mselect linq datatable linq c# object except two lists how to query items with any id in a list of ids linq c# linq query get last day of month datatable iqueryable c# linq linq find object from id c# linq to select even numbers csharp linq datetime between c# new dictionary linq linq in c# c# linq list select select distinct linq mvc c# linq distinct group by nested list c# linq query map to entity split list c# linq c# every property of object linq linq pick random element c# linq remove duplicate items from list of integer getting the row of max value c# linq linq query languages how to query 2 tables in c# using linq extensions method c# convert linq jValue to int async where linq linq query to fetch parent child data from same table in c# linq where c# reading dictionary key value using linq and storig into a variable linq dynamic order by descending c# linq aggregate string builder linq convert list to another list linq c# or c# linq select specific columns linq filter list c# linq datatable group by binding datagridview + c# c# linq to get most recent item from IList convert foreach to linq c# linq group by multiple groupby in linq linq group by linq distinct LINQ Using .include in linq Convert string int Linq c# linq foreach

Browse Other Code Languages

CodeProZone