相关疑难解决方法(0)

如何从 C# 中的对象数组中获取不同的值?

我有一个array称为object存储的对象,某些对象的属性(skuID)与其他一些具有不同属性()的存储相同storingID,我如何根据array distinct它们的(skuID)进行调整?

Storing(string storingID, skuID, storageID, price, expiry)
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个但它不起作用:

List<storing> storingAll = (List<storing>)Session["storingAll"];
List<storing> displayedStoring = storingAll.Distinct().ToArray();
Run Code Online (Sandbox Code Playgroud)

c# arrays

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

按属性分组列出<人员>并获取分组的次数

假设我有一个名为Person的类:

public class Person
{
    public int Age { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

一份人员名单:

Person { Age = 20, FirstName = "John", LastName = "Joe" }
Person { Age = 20, FirstName = "John", LastName = "Joe" }
Person { Age = 10, FirstName = "James", LastName = "Dokes" }
Run Code Online (Sandbox Code Playgroud)

我想要的是(新的或旧的具有新属性)列表按年龄,名字和姓氏对人进行分组我还想知道该对象被分组的次数.

所以上面的结果将是:

Person { Age = 20, FirstName = "John", LastName = "Joe", Count = 2 …
Run Code Online (Sandbox Code Playgroud)

c# properties list linq-group

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

如何在运行时优雅地将IEnumerable <T>转换为HashSet <T>而不事先知道T.

简而言之,我需要在编译时不知道转换IEnumerable list(带有值IEnumerable<T>).我认为可以做到的唯一方法如下,但我发现它非常难看.HashSet<T> setT

public IEnumerable GetHashSet(IEnumerable source)
{
    Type itemType = source.GetType().GetGenericArguments()[0];
    Type listOpen = typeof(List<>);
    Type listClosed = listOpen.MakeGenericType(new Type[] { itemType });
    IList list = Activator.CreateInstance(listClosed) as IList;
    foreach (var obj in source)
        list.Add(obj);
    Type hashSetOpen = typeof(HashSet<>);
    Type hashSetClosed = hashSetOpen.MakeGenericType(new Type[] { itemType });
    return Activator.CreateInstance(hashSetClosed, list) as IEnumerable;
}
Run Code Online (Sandbox Code Playgroud)

问题是,HashSet<T>没有任何方法可以通过某些非通用接口添加对象(相比之下,List<T>IList.Add(object)).它也没有一个带有"裸"IEnumerable的构造函数(也没有List<T>).

c# reflection

0
推荐指数
2
解决办法
2030
查看次数

从c#中的List中删除具有重复属性的对象

我有一个列表,我想创建一个没有重复值记录的新列表

public List<links> results = new List<links>();
public List<links> final_results = new List<links>();
public class links
{
    public string url { get; set; }
    public string title { get; set; }
    public string description { get; set; }
    public int place { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

结果在代码中获取它的值.唯一的Place属性可能会出现相同的记录,但其他属性是相同的.我想省略在网址,标题和说明中具有重复值的重复记录.我写了这段代码,但没有改变:

     final_results = results .GroupBy(n => n.url).Select(g => g.FirstOrDefault()).ToList();
Run Code Online (Sandbox Code Playgroud)

但当我将我的重复器绑定到这个新列表时,没有任何改变.我怎么能省略这个重复值?

c# asp.net list

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

查询摆脱匹配记录C#

我希望能够在WinForms应用程序中的C#Visual Studio 2012中编写查询,该查询不会显示匹配的记录.假设我在Access DB中有一条记录,

JOHN SMITH MALE   19
JANE DOE   FEMALE 19
JOHN SMITH MALE   19
Run Code Online (Sandbox Code Playgroud)

还有一个像这样的查询

SELECT a.NAME FROM [NAME] a WHERE a.NAME = JOHN SMITH 
//but returns both records in the table 
Run Code Online (Sandbox Code Playgroud)

我怎样才能从表中返回一条记录?任何帮助将非常感激.

c# sql ms-access winforms

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

标签 统计

c# ×5

list ×2

arrays ×1

asp.net ×1

linq-group ×1

ms-access ×1

properties ×1

reflection ×1

sql ×1

winforms ×1