首页 > 解决方案 > 如何使用 LINQ 比较 char 数组的元素?

问题描述

假设我有一个这样的数组:

char[] l = {'a', 'a', 'b', 'c'}

现在,我想要完成的是将数组的第一个元素与第二个元素进行比较,如果它们匹配,则向前移动(将第二个元素与第三个元素进行比较,依此类推),但如果它们不匹配,则取第一个元素与下一个不匹配。做类似这样的事情:

var l = l.TakeTheFirstOne((x, y) => x != y)

在这种情况下,答案应该是'a'第二个位置的字符。

标签: c#linq

解决方案


var answer = l.Select((item, index) => new {item, index})
         .FirstOrDefault(x => (x.index != l.Length - 1) && x.item != l[x.index + 1])?.item;

推荐阅读