【发布时间】:2020-11-14 17:26:35
【问题描述】:
我想从列表中提取符合不同标准的元素的数据,如下所示:
我的清单包含:
1, name1, Time, quantity
2, name2, Time, quantity
3, name1, Time+1, quantity+1
4, name2, Time+1, quantity+1
....
我的目标:
if (MyList.Contains(name1 && name2))
{
if (name1(quantity) == name2(quantity) && name1(Time) == name2(Time))
{
return quantity;
}
}
我如何创建我的列表:
public class OCO1 : IEquatable<OCO1>
{
public DateTime OrderCreatedTime {get; set;}
public int ID {get; set;}
public decimal Quantity {get; set;}
public string Tag {get; set;}
public override string ToString()
{
return "ID: " + ID + " Name: " + Tag;
}
public override bool Equals(object obj)
{
if (obj == null) return false;
OCO1 objAsOCO1 = obj as OCO1;
if (objAsOCO1 == null) return false;
else return Equals(objAsOCO1);
}
public override int GetHashCode()
{
return ID;
}
public bool Equals(OCO1 other)
{
if (other == null) return false;
return (this.ID.Equals(other.ID));
}
// Should also override == and != operators.
}
public partial class Base
{
List<OCO1> CreatedTimeOrder = new List<OCO1>();
if (order.Tag.Equals("name1"))
{
CreatedTimeOrder.Add( new OCO1() {OrderCreatedTime = order.CreatedTime, ID = order.Id, Quantity = order.Quantity, Tag = "name1"});
}
if (order.Tag.Equals("name2"))
{
CreatedTimeOrder.Add( new OCO1() {OrderCreatedTime = order.CreatedTime, ID = order.Id, Quantity = order.Quantity, Tag = "name2"});
}
我不知道该怎么做。任何帮助不胜感激!
“编辑帖子的更多详细信息 jskfjhsfsjfsgfghsfshsfghjsfgsdsjffsgfgsgfyjhdfusygfyusgfuygsdvfvsdufvusvfuvsufvyusdfgyugfdyugfusgfuysfgusfgusgfuysgfgsugfusgfugfgsfgufgusfugydsfg
”【问题讨论】:
-
这并不重要,因为这两种类型都是可枚举的,但这真的是 List 吗?看起来它会是一个 DataTable。
-
是的,它似乎不是一个列表,但它是:)
-
在您的示例中,有多个条目满足您的条件。你想拥有第一个还是全部? 1、2 和 3,4 确实有名称:name1、name2 并且具有相同的时间和数量。
-
有什么方法可以将类型转换为 DataTable?如果这样做,使用 DataTable 很容易实现所需的输出。
-
如果name1和name2的时间相同,我想获取数量。我不明白如何解释它..