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
}
}
}
浙公网安备 33010602011771号