Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将两个字符串列表中的第一个单词与一个控制字符进行比较_C#_List_Except - Fatal编程技术网

C# 将两个字符串列表中的第一个单词与一个控制字符进行比较

C# 将两个字符串列表中的第一个单词与一个控制字符进行比较,c#,list,except,C#,List,Except,是否可以将两个字符串列表中的第一个单词与一个控制字符进行比较 假设字符串是- “黄色/高/宽/白色” 有什么可以使用的吗- newList = listOne.Except( listTwo ).ToList(); 但仅与第一个“/”进行比较 谢谢。一个非常简单的方法是: var result = list1.Where(str1 => !list2.Any(str2 => str2.Split('/')[0] == str1.Split('/')[0])); 或者,您可以使用除

是否可以将两个字符串列表中的第一个单词与一个控制字符进行比较

假设字符串是-

“黄色/高/宽/白色”

有什么可以使用的吗-

newList = listOne.Except( listTwo ).ToList();
但仅与第一个“/”进行比较


谢谢。

一个非常简单的方法是:

var result = list1.Where(str1 => !list2.Any(str2 => str2.Split('/')[0] == str1.Split('/')[0]));
或者,您可以使用除之外的
,但这需要您创建一个自定义:

公共类CustomStringComparer:IEqualityComparer
{
公共布尔等于(字符串x、字符串y)
{
//确保两个字符串都不为空
如果(!object.ReferenceEquals(x,null)和&!object.ReferenceEquals(y,null))
{
var x_split=x.split('/');
变量y_split=y.split('/');
//仅比较拆分字符串的第一个元素
返回x_分割[0]==y_分割[0];
}
返回false;
}
public int GetHashCode(字符串str)
{
//确保字符串不为空
如果(!object.ReferenceEquals(str,null))
{
//返回拆分字符串中第一个元素的哈希代码
返回str.Split('/')[0].GetHashCode();
}
//如果为null,则返回0
返回0;
}
}
var result=list1.Except(list2,new CustomStringComparer());

您可以在
/
上拆分并比较0索引吗?
public class CustomStringComparer : IEqualityComparer<string>
{
    public bool Equals(string x, string y)
    {
        // Ensure that neither string is null
        if (!object.ReferenceEquals(x, null) && !object.ReferenceEquals(y, null))
        {
            var x_split = x.Split('/');
            var y_split = y.Split('/');

            // Compare only first element of split strings
            return x_split[0] == y_split[0];
        }

        return false;
    }

    public int GetHashCode(string str)
    {
        // Ensure string is not null
        if (!object.ReferenceEquals(str, null))
        {
            // Return hash code of first element in split string
            return str.Split('/')[0].GetHashCode();
        }

        // Return 0 if null
        return 0;
    }
}

var result = list1.Except(list2, new CustomStringComparer());