C#Distinct以逗号分隔的值不起作用

Mar*_*ord 1 .net c# string distinct-values

我试图从逗号分隔的字符串中删除重复的值,并且结果不一致.例如,

如果我通过:

STA27,STA27,STA27B,STA27A,STA27B,

我明白了:

STA27,STA27,STA27B,STA27A,

或者,如果我通过:

STA24,STA24,STA24,STA24,

我明白了:

STA24,STA24,

我已经尝试了几种方法来最终摆脱逗号,但似乎没有任何工作.我不明白为什么Distinct也不起作用.我认为它与字符串终止的方式有关,但在第一个例子中,我得到前两个条目的重复,所以它似乎不是一个位置问题.

有什么想法吗?

 public string FindDistinctBeats(String Beats)
    // Accept comma-separated string, return distinct values
    {
        string result = string.Empty;

        try
        {
            result = string.Join(",", Beats.Split(',').Distinct().ToArray());
            result = result.TrimEnd(',');

            if (String.IsNullOrEmpty(result))
            {
                return result;
            }
            else
            {
                return result.TrimEnd(result[result.Length - 1]);
            }

        }
        catch (Exception e)
        {
            return e.ToString();
        }
    }
Run Code Online (Sandbox Code Playgroud)

JSt*_*ard 8

一个简单的测试显示了预期的结果:

public class Distinct
{
    private string input = "STA27,STA27,STA27B,STA27A,STA27B,";

    [Test]
    public void DistinctTest()
    {
        var distincts = input.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Distinct();
        foreach(var entry in distincts)
        {
            Console.WriteLine(entry);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

产量

STA27
STA27B
STA27A
Run Code Online (Sandbox Code Playgroud)