C# 收集方法<;螺柱>;作为参数并返回集合<;螺柱>;其中所有元素都是唯一的;id";和价值>;50

C# 收集方法<;螺柱>;作为参数并返回集合<;螺柱>;其中所有元素都是唯一的;id";和价值>;50,c#,console-application,C#,Console Application,我的任务是创建一个方法,该方法将Collection作为参数并返回Collection,其中所有元素都是唯一的(id),且值>50 我已经有了我的答案,但我不知道我做的是否正确。还有人能帮我怎么做吗“所有元素都是唯一的,id和值都大于50” 以下是我的控制台应用程序: namespace MyTesting { class Studs { int id; int value; } class Program {

我的任务是创建一个方法,该方法将Collection作为参数并返回Collection,其中所有元素都是唯一的(id),且值>50

我已经有了我的答案,但我不知道我做的是否正确。还有人能帮我怎么做吗“所有元素都是唯一的,id和值都大于50”

以下是我的控制台应用程序:

namespace MyTesting
{
    class Studs
    {
        int id;
        int value;
    }

    class Program
    {
        public ICollection<Studs> GetElements(ICollection<Studs> elements)
        {
            return elements;
        }

        static void Main(string[] args)
        {
        }
    }
}
MyTesting
{
类螺柱
{
int-id;
int值;
}
班级计划
{
公共ICollection GetElements(ICollection元素)
{
返回元素;
}
静态void Main(字符串[]参数)
{
}
}
}

如果要完全消除重复项,可以执行以下操作:

        public ICollection<Studs> GetElements(ICollection<Studs> elements)
        {
            var ret = from e in elements
                where elements.All(x => x.id != e.id || x == e) && e.value > 50
                select e;
            return ret.ToList();
        }
        public ICollection<Studs> GetElements(ICollection<Studs> elements)
        {
            var ret = from e in elements
                where e.value > 50
                group e by e.id
                into g
                select g.FirstOrDefault();
            return ret.ToList();
        }
public ICollection GetElements(ICollection元素)
{
var ret=来自元素中的e
其中,elements.All(x=>x.id!=e.id | | x==e)和&e.value>50
选择e;
返回ret.ToList();
}
如果要返回每个id的第一个匹配项,可以执行以下操作:

        public ICollection<Studs> GetElements(ICollection<Studs> elements)
        {
            var ret = from e in elements
                where elements.All(x => x.id != e.id || x == e) && e.value > 50
                select e;
            return ret.ToList();
        }
        public ICollection<Studs> GetElements(ICollection<Studs> elements)
        {
            var ret = from e in elements
                where e.value > 50
                group e by e.id
                into g
                select g.FirstOrDefault();
            return ret.ToList();
        }
public ICollection GetElements(ICollection元素)
{
var ret=来自元素中的e
其中e.value>50
按e.id划分的e组
进入g
选择g.FirstOrDefault();
返回ret.ToList();
}

如果要完全消除重复项,可以执行以下操作:

        public ICollection<Studs> GetElements(ICollection<Studs> elements)
        {
            var ret = from e in elements
                where elements.All(x => x.id != e.id || x == e) && e.value > 50
                select e;
            return ret.ToList();
        }
        public ICollection<Studs> GetElements(ICollection<Studs> elements)
        {
            var ret = from e in elements
                where e.value > 50
                group e by e.id
                into g
                select g.FirstOrDefault();
            return ret.ToList();
        }
public ICollection GetElements(ICollection元素)
{
var ret=来自元素中的e
其中,elements.All(x=>x.id!=e.id | | x==e)和&e.value>50
选择e;
返回ret.ToList();
}
如果要返回每个id的第一个匹配项,可以执行以下操作:

        public ICollection<Studs> GetElements(ICollection<Studs> elements)
        {
            var ret = from e in elements
                where elements.All(x => x.id != e.id || x == e) && e.value > 50
                select e;
            return ret.ToList();
        }
        public ICollection<Studs> GetElements(ICollection<Studs> elements)
        {
            var ret = from e in elements
                where e.value > 50
                group e by e.id
                into g
                select g.FirstOrDefault();
            return ret.ToList();
        }
public ICollection GetElements(ICollection元素)
{
var ret=来自元素中的e
其中e.value>50
按e.id划分的e组
进入g
选择g.FirstOrDefault();
返回ret.ToList();
}

要获得唯一性,请在ID上执行GroupBy,然后从分组中选择所需的元素(例如,本例中的第一个元素)

如果你喜欢丑陋的笑话

ICollection<Studs> GetElements(ICollection<Studs> elements)
{
    return elements.Where(e => e.value > 50).GroupBy(e => e.id).Select(g => g.First()).ToList();
}
ICollection获取元素(ICollection元素)
{
返回元素。其中(e=>e.value>50)。GroupBy(e=>e.id)。选择(g=>g.First()).ToList();
}

要获得唯一性,请在ID上执行GroupBy,然后从分组中选择所需的元素(例如,本例中的第一个元素)

如果你喜欢丑陋的笑话

ICollection<Studs> GetElements(ICollection<Studs> elements)
{
    return elements.Where(e => e.value > 50).GroupBy(e => e.id).Select(g => g.First()).ToList();
}
ICollection获取元素(ICollection元素)
{
返回元素。其中(e=>e.value>50)。GroupBy(e=>e.id)。选择(g=>g.First()).ToList();
}

您只是返回得到的元素,因此显然没有按照要求执行操作……请查看和(查看那里的示例代码)。您可能希望使用
.ToList()
将结果转换回
ICollection
,或者您可以更改
GetElements()
返回
IEnumerable
。返回集合时,所有元素都是唯一的id-
id
在原始集合中不是唯一的吗?如果条目不唯一,会发生什么情况?保持第一?最后一个?检查他们是否只是被骗,并保留其中一个?没有保留?说明中还说,“如果存在歧义,请在目标集合中放入任何输入元素。”我没有完全理解,您只是返回了您得到的元素,因此您显然没有按照要求执行操作……请查看和(查看那里的示例代码)。您可能希望使用
.ToList()
将结果转换回
ICollection
,或者您可以更改
GetElements()
返回
IEnumerable
。返回集合时,所有元素都是唯一的id-
id
在原始集合中不是唯一的吗?如果条目不唯一,会发生什么情况?保持第一?最后一个?检查他们是否只是被骗,并保留其中一个?一个都不保留?说明书上还说,“如果有歧义,请在目标集合中放入任何输入元素。”我没有准确地理解它,这意味着什么?“如果存在歧义,请将任何输入元素放入目标集合。”因此,第二个元素就可以了。如果出现歧义,则第一个元素大于50,这意味着什么?“如果存在歧义,请将任何输入元素放入目标集合。”因此,第二个元素就可以了。如果出现歧义,则第一个元素大于50,这意味着什么?“在出现歧义的情况下,将任何输入元素放入目标集合。”这意味着,如果您有多个相同ID的值,并且两个值都超过50,您可以选择其中任何一个(即,您不必选择最大的或任何东西)。
这意味着什么?“如果存在歧义,请将任何输入元素放入目标集合。”
-这意味着您已从问题中省略了部分需求。返回元素。其中(e=>e.value>50)。GroupBy(e=>e.id)。选择(g=>g.First()).ToList();这是否已经解决了问题@马修瓦索尼特有。它只选择满足“任意输入元素”选项的第一个元素。这意味着什么?“在出现歧义的情况下,将任何输入元素放入目标集合。”这意味着,如果您有多个相同ID的值,并且两个值都超过50,您可以选择其中任何一个(即,您不必选择最大的或任何东西)。
这意味着什么?“如果存在歧义,请将任何输入元素放入目标集合中。”
-这意味着您已从问题中省略了部分需求。返回元素。其中(e=>e.value>50)。GroupBy(e=>e.id)。选择(g=>g.Fir