C# 修改列表时将对象列表的选定内容转换为数组
我正在收集手机传感器数据,并将其填充到对象列表中,从每个传感器的特定类开始:C# 修改列表时将对象列表的选定内容转换为数组,c#,android,arrays,list,xamarin,C#,Android,Arrays,List,Xamarin,我正在收集手机传感器数据,并将其填充到对象列表中,从每个传感器的特定类开始: public class accbuff { public double ax { get; set; } public double ay { get; set; } public double az { get; set; } public long acct { get; set; } } 然后,我将每个新的传感器读取事件(
public class accbuff
{
public double ax { get; set; }
public double ay { get; set; }
public double az { get; set; }
public long acct { get; set; }
}
然后,我将每个新的传感器读取事件(如值)和时间戳附加到列表中:
accList.Add(new accbuff
{
ax = e.Values[0],
ay = e.Values[1],
az = e.Values[2],
acct = stopwatch.ElapsedMilliseconds
});
最后,在设定的时间段后,我想将列表内容传递给我拥有的一些科学计算方法,然后清除列表并重置计时器
这就是我需要帮助的地方。清除列表或重置计时器没有问题,但无法从列表中复制数据,因为在将副本枚举到阵列时,新的传感器读数会修改列表
传感器读数约为500hz。如果我尝试下面的方法,我会由于修改而得到枚举错误
long[] at = accList.Select(x => x.acct).ToArray();
stopwatch.Restart();
accList.Clear();
我知道我可以锁定它,但在我将列表复制到阵列以供进一步使用时,我实际上不想在传感器读数上有间隙。任何继续进行的战略都会非常有帮助。谢谢 我希望这有助于:
long[] at = accList.ToList().Select(x => x.acct).ToArray();
stopwatch.Restart();
accList.Clear();
long[] at = accList.ToList().Select(x => x.acct).ToArray();
stopwatch.Restart();
accList.Clear();
我希望这有助于:
long[] at = accList.ToList().Select(x => x.acct).ToArray();
stopwatch.Restart();
accList.Clear();
long[] at = accList.ToList().Select(x => x.acct).ToArray();
stopwatch.Restart();
accList.Clear();
更新列表时,在选择属性之前,您需要为
列表创建一个单独的副本:
var listCopy = accList.ToList();
然后使用listCopy
:
long[] at = listCopy.Select(x => x.acct).ToArray();
stopwatch.Restart();
accList.Clear();
您还可以简化整个过程:
更新列表时,在选择属性之前,您需要为列表创建一个单独的副本:
var listCopy = accList.ToList();
然后使用listCopy
:
long[] at = listCopy.Select(x => x.acct).ToArray();
stopwatch.Restart();
accList.Clear();
您还可以简化整个过程: