长话短说:我有2个对象集合.一个包含好的值(让我们称之为"好"),其他默认值(先生"默认").我希望联盟的相交在良好和默认之间,以及默认.换句话说:相交(联合(良好,默认),默认).有人可能认为它解析为默认值,但这里是棘手的:我使用自定义IEqualityComparer.
我得到了以下课程:
class MyClass
{
public string MyString1;
public string MyString2;
public string MyString3;
}
class MyEqualityComparer : IEqualityComparer<MyClass>
{
public bool Equals(MyClass item1, MyClass item2)
{
if(item1 == null && item2 == null)
return true;
else if((item1 != null && item2 == null) ||
(item1 == null && item2 != null))
return false;
return item1.MyString1.Equals(item2.MyString1) &&
item1.MyString2.Equals(item2.MyString2);
}
public int GetHashCode(MyClass item)
{
return new { item.MyString1, item.MyString2 }.GetHashCode();
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我的收藏品Good和Default集合的特征:
默认值:它是一个很大的集合,包含所有想要的{MyString1,MyString2}对,但是你可以猜测,MyString3值是默认值.
好:它是一个较小的集合,主要包含默认集合中的项目,但具有一些好的MyString3值.它还有一些{MyString1,MyString2},它们位于想要的集合之外.
我想要做的是:只获取Good中默认的项目,但将Default中的其他项目添加到默认项目中.
这是我认为最好的尝试:
HalfWantedResult = Good.Union(Default, …Run Code Online (Sandbox Code Playgroud) 我有这个数组,例如(大小是可变的):
x = ["10111", "10122", "10250", "10113"]
Run Code Online (Sandbox Code Playgroud)
我需要找到最长的字符串,它是每个数组元素的子字符串(在本例中为"10")(它不必是字符串的前缀).我必须从所有字符串中删除它.此示例的输出将是:
x=["111","222","250","113"] //common value = "10"
Run Code Online (Sandbox Code Playgroud)