相关疑难解决方法(0)

如何使用LINQ从列表中获取重复项?

我有一个List<string>喜欢:

List<String> list = new List<String>{"6","1","2","4","6","5","1"};
Run Code Online (Sandbox Code Playgroud)

我需要将列表中的重复项目放入新列表中.现在我正在使用嵌套for循环来执行此操作.

结果list将包含{"6","1"}.

是否有任何想法使用LINQlambda表达式

c# linq duplicates

168
推荐指数
7
解决办法
16万
查看次数

如何从List <string>中查找所有重复项?

我有一个List<string>重复的单词.我需要找到所有重复的单词.

什么技巧让他们全部?

c# list duplicates

115
推荐指数
5
解决办法
14万
查看次数

AsQueryable()的目的是什么?

是的目的AsQueryable()只是让你可以围绕传递IEnumerable到所期望的方法IQueryable,或者是有一个有用的理由表示IEnumerableIQueryable?例如,它应该是这样的情况:

IEnumerable<Order> orders = orderRepo.GetAll();

// I don't want to create another method that works on IEnumerable,
// so I convert it here.
CountOrders(orders.AsQueryable());

public static int CountOrders(IQueryable<Order> ordersQuery)
{
    return ordersQuery.Count();
}
Run Code Online (Sandbox Code Playgroud)

或者它实际上是否使它做了不同的事情:

IEnumerable<Order> orders = orderRepo.GetAll();
IQueryable<Order> ordersQuery = orders.AsQueryable();

IEnumerable<Order> filteredOrders = orders.Where(o => o.CustomerId == 3);
IQueryable<Order> filteredOrdersQuery = ordersQuery.Where(o => o.CustomerId == 3);

// Are these executed in a different way?
int result1 = filteredOrders.Count(); …
Run Code Online (Sandbox Code Playgroud)

.net c# linq ienumerable iqueryable

94
推荐指数
4
解决办法
7万
查看次数

C#确定列表中的重复项

要求:在未排序的列表中,确定是否存在重复项.我这样做的典型方法是n平方嵌套循环.我想知道其他人如何解决这个问题.Linq有一种优雅,高性能的方法吗?需要lambda或比较器的通用的东西会很好.

c# linq generics algorithm list

61
推荐指数
5
解决办法
7万
查看次数

如何查找List在List <string>中具有重复值

如何查找是否List<string>有重复值?

我试过下面的代码.有没有最好的方法来实现?

var lstNames = new List<string> { "A", "B", "A" };

if (lstNames.Distinct().Count() != lstNames.Count())
{
    Console.WriteLine("List contains duplicate values.");
}
Run Code Online (Sandbox Code Playgroud)

c# linq list

58
推荐指数
4
解决办法
8万
查看次数

如何在列表<>中查找重复项?

我有:

List<string> list = new List<string>() { "a", "a", "b", "b", "r", "t" };
Run Code Online (Sandbox Code Playgroud)

我怎么才能得到"a","b"?

我试着这样做:

List<string> list = new List<string>() { "a", "a", "b", "b", "r", "t" };
List<string> test_list = new List<string>(); 

test_list = list.Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

现在test_list有{"a","b","r","t"}
然后:

test_list = test_list.Except(list).ToList();
Run Code Online (Sandbox Code Playgroud)

这是我的失败点,因为Except()删除了所有元素.

你能帮我解决一下吗?

c# linq list

7
推荐指数
3
解决办法
2万
查看次数

序列序列的2组合的交集的并集

如何在序列序列中找到2个或更多序列中出现的项集?

换句话说,我希望在传递的序列中至少有2个出现不同的值.

注意: 这不是所有序列的交叉,而是所有序列对的交叉的并集.

注2: 不包括序列与自身的对或2组合.那太傻了.

我自己做了一个尝试,

public static IEnumerable<T> UnionOfIntersects<T>(
                                  this IEnumerable<IEnumerable<T>> source)
{
    var pairs =
            from s1 in source
            from s2 in source
            select new { s1 , s2 };

    var intersects = pairs
        .Where(p => p.s1 != p.s2)
        .Select(p => p.s1.Intersect(p.s2));

    return intersects.SelectMany(i => i).Distinct();
}
Run Code Online (Sandbox Code Playgroud)

但是我担心这可能是次优的,我认为它包括A,B和B对的交叉点,A似乎效率低下.我也认为可能有一种更有效的方法来复合集合,因为它们是迭代的.


我在下面包含一些示例输入和输出:

{ { 1, 1, 2, 3, 4, 5, 7 }, { 5, 6, 7 }, { 2, 6, 7, 9 } , { 4 } }
Run Code Online (Sandbox Code Playgroud)

回报

{ …
Run Code Online (Sandbox Code Playgroud)

c# linq

6
推荐指数
1
解决办法
273
查看次数

如何检查项目是否已在存储库列表中?

好的,所以这里有一些例外,我无法List<Dvd> Dvds = _dvds.ReadAll();在DvdController.cs中使用,如果dvd已在列表中,请检查它是否包含dvd信息。即使我确实这样做了,它也无法按我的预期工作。即使我检查该信息是否在列表中并尝试将其停止,它仍会将其添加到列表中。Dvd.cs确实将Id递增了一个。我想知道对此有什么解决方案?

DvdController.cs

...
private void CreateDvd() //Create
    {
        var myView = new DvdView();
        var dvdInfos = myView.GetNewDvdInfo();

        _dvds.Create(dvdInfos);
        DisplayDvds();
    }
...
Run Code Online (Sandbox Code Playgroud)

DvdRepository.cs

public class DvdRepository
{
    private static List<Dvd> dvds = new List<Dvd>()
    {
        new Dvd("Batman", 2010, "Bruce", 4 ),
        new Dvd("Superman", 2009, "John", 4),
        new Dvd("Wonderwoman", 2012, "Omar", 4)
    };
    public Dvd Create(Dvd dvd)
    {
        if (dvds.Contains(dvd))
        {
            Console.WriteLine("duplicate"); //not working
        }
        else
            dvds.Add(dvd);

        return dvds.FirstOrDefault(d => d.Id == dvd.Id);
    }
    public List<Dvd> ReadAll() …
Run Code Online (Sandbox Code Playgroud)

c#

3
推荐指数
1
解决办法
102
查看次数

在列表中查找一个属性包含重复值的对象

我有以下模型类:

public class DuplicateTags
{
    public string VMName { set; get; }
    public string shortName { set; get; }
}
Run Code Online (Sandbox Code Playgroud)

它的填充如下:

int tempindex = tempvmname.IndexOf('-');
duplicateTagsInDisplayName.Add(new DuplicateTags 
{ 
    VMName = tempvmname, 
    shortName = tempvmname.Substring(0, tempindex)
});
Run Code Online (Sandbox Code Playgroud)

现在我想显示具有重复shortName 的列表项?

.net c# entity-framework

2
推荐指数
1
解决办法
5660
查看次数

如何检查值在数组中出现的次数?

所以这就是我希望我的输出看起来像:

How many numbers? 10
Give number 1: 1
Give number 2: 3
Give number 3: 1
Give number 4: 3
Give number 5: 4
Give number 6: 6
Give number 7: 4
Give number 8: 8
Give number 9: 2
Give number 10: 1
Number 1 appeared 3 times
Number 2 appeared 1 times
Number 3 appeared 2 times
Number 4 appeared 2 times
Number 6 appeared 1 times
Number 8 appeared 1 times
Run Code Online (Sandbox Code Playgroud)

问题是,我已经完成了读取用户输入的部分.但是,我不知道如何继续讲述每个数字出现次数的部分.

另外,我这样做是作为一项功课,所以大部分代码都是芬兰语.不过,我希望你仍能理解它.

using System;

namespace …
Run Code Online (Sandbox Code Playgroud)

c# arrays

1
推荐指数
2
解决办法
7727
查看次数

删除元组列表中的重复项和求和值

我有一个带元组的列表,其中包含两个字符串和一个int:

List<Tuple<string, string, int>> peopleList = new List<Tuple<string, string, int>>();
Run Code Online (Sandbox Code Playgroud)

该元组从查找到数据库,并使用带有名称,数字和整数列表的DataReader进行填充。

我想从列表中删除重复项并计算出整数。

我已经根据属性和重复项的总和查看了这个List Distinct条目 -这与我想要的最相似,但是我正在使用元组并努力了解如何删除重复项并正确添加数字。

var group = peopleList.GroupBy(x => x)
.Select(x => new { Name = x.Key.Item1, No = x.Key.Item2, Sum = x.Sum(g => g.Item3) });
Run Code Online (Sandbox Code Playgroud)

我希望得到一个包含所有人员及其对应的计数总和的列表。

所以:

James, 12, 5
Jerry, 15, 2
James, 12, 10
Helen, 87, 8
Jerry, 15, 8
Run Code Online (Sandbox Code Playgroud)

成为:

James, 12, 15
Jerry, 15, 10
Helen, 87, 8
Run Code Online (Sandbox Code Playgroud)

c# linq tuples list

0
推荐指数
1
解决办法
60
查看次数