来自DataCollection或对象数组的DataCollection或字段数组

时间:2019-02-08 08:33:23

标签: c#

我有一个实体的数据集合,可以将其转换为数组,所以我有

DataCollection<Entity> entities;

Entity[] entities;

实体包含几个字段,例如

string entityName;
int entityNumber;

是否可以创建如下所示的解决方案?

DataCollection<Entity> entities   ->  DataCollection<int> entityNumbers;
Entity[] entities;                ->  int[] entityNumbers;

ofc我可以通过foreach来做到,例如:

foreach (Entity entity in entities)
{
    add entity to new list/collection
}

但是我正在寻找更优雅的解决方案(例如Java中的HashMap)

我认为将我的DataCollection或Array投射到列表中就可以完成工作,因为我们正在寻找一种解决方案:

此:

List<int> result = list.Select(e => e.i).ToList();

或:

List<int> result = list.ConvertAll(e => e.i);

2 个答案:

答案 0 :(得分:2)

在您提到的评论中,您仅在寻找实体编号字段的Sum。为此,您可以这样做:

using System.Linq; //at the top of your .cs file

并计算总数。

var total = entities.Sum(x => x.entityNumber);

答案 1 :(得分:0)

看看这个:

var result = list.Select(x=> new DaCollectionOfInt<int>() { id = x.id });

OR

  edittext.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start, int 
before, int count) {
                   editetext.setBackgroundResource(R.color.yellow);

                }

                @Override
                public void beforeTextChanged(CharSequence s, int start, int 
count,
                                              int after) {

 editetext.setBackgroundResource(R.color.grey);

                }

                @Override
                public void afterTextChanged(Editable s) {
                   editetext.setBackgroundResource(R.color.yellow);
                }
            });