SequenceEqual、C# 用SequenceEqual判断List<string>是否相等

str.OrderBy(c => c) .SequenceEqual(targetString.OrderBy(c => c))

这段代码的作用是判断两个字符串 是否为“字符集合相同但顺序可以不同”的变位词(anagram)。

变位词(anagram,中文常译作“回文词”“易位构词”或简称“变位词”)的定义:

由完全相同的一组字符重新排列后得到的另一个词或短语。

也就是说,两个词如果:

包含完全相同的字符(包括每种字符的出现次数), 只是字符的排列顺序不同, 那它们就互为 变位词。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> a = new List<string>();
            a.Add("123");
            a.Add("234");
 
            List<string> b = new List<string>();
            b.Add("123");
            b.Add("234");
 
            bool f = a.SequenceEqual(b);
 
            Console.WriteLine(f);
 
            //如果直接输出a==b的话,是false
        }
    }
}

  

posted @ 2025-09-03 14:01  yinghualeihenmei  阅读(22)  评论(0)    收藏  举报