假设我有一个列表:
IList<int> originalList = new List<int>();
originalList.add(1);
originalList.add(5);
originalList.add(10);
Run Code Online (Sandbox Code Playgroud)
另一个清单......
IList<int> newList = new List<int>();
newList.add(1);
newList.add(5);
newList.add(7);
newList.add(11);
Run Code Online (Sandbox Code Playgroud)
如何更新originalList以便:
这样 - 制作originalList的内容:
{ 1, 5, 7, 11 }
Run Code Online (Sandbox Code Playgroud)
我问的原因是因为我有一个带有孩子集合的对象.当用户更新此集合时,而不是仅删除所有子项,然后插入他们的选择,我认为如果我只是对添加或删除的子项执行操作,而不是拆除整个集合,并插入newList孩子们好像都是新手.
编辑 - 抱歉 - 我写了一个可怕的标题......我应该写'最少量的代码'而不是'有效'.我认为我已经把很多答案扔掉了.他们都很棒......谢谢!
如何将reflection.propertyinfo []转换为generic.list <>?
我需要帮助解决这个问题...我有两个相同对象的列表"SearchResult",这个对象有一个id属性和一个score属性.在两个列表中可以存在相同的id,但是具有不同的分数,所以我需要创建一个组合相同id的新List,但是得分必须是两个得分的总和,最后,列表按最终得分排序.我怎样才能做到这一点?我搜索linq查询,但我找不到任何解决方案.
我希望你能帮助我,谢谢!
我将使用一个包含大约500,000个项目的集合,并且正在寻找一种获得所有重复项目的好方法.仔细阅读这篇文章后,我看到最流行的解决方案是使用散列集.但是,如果我想让所有颜色为红色的汽车不仅仅是Car4和Car5呢?
Car1.Color = Red;
Car2.Color = Blue;
Car3.Color = Green;
Car4.Color = Red;
Car5.Color = Red;
Run Code Online (Sandbox Code Playgroud)
鉴于问题,这将是一个相当快速的方法吗?
编辑:我在那篇文章中看到,下面的代码可以很容易地改变,以满足我的需要.而且我不确定是否有更好的方法来解决问题,但我会留下帖子只是为了看.
var duplicates = from car in cars
group car by car.Color into grouped
from car in grouped
select car;
Run Code Online (Sandbox Code Playgroud) 我想转换DataTable为List<object>C#.这是我的代码.但它没有用.请帮我
public List<object> ShowMessage()
{
List<object> obj = new List<object>();
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Rows.Add("1","AAA");
dt.Rows.Add("2", "BBB");
dt.Rows.Add("3", "CCC");
foreach (DataRow dr in dt.Rows)
{
obj.Add(dr);
}
return obj;
}
Run Code Online (Sandbox Code Playgroud)
这是错误 -

对不起,我是编码的新手,在尝试一切之后我无法弄清楚这一点!我有6个屏蔽文本框,用户输入分贝值,应该将它们保存到列表中,将每个输入到公式中并输出求和的分贝值,但它只是将变量添加为6,这是计数列表而不是实际值.当我尝试一个foreach循环时,它使它成为一个无限循环.
private void dBAddButton_Click(object sender, EventArgs e)
{
List<double> addDBList = new List<double>();
double final;
double added = 0;
addDBList.Add(double.Parse((dB1.Text)));
addDBList.Add(double.Parse((dB2.Text)));
addDBList.Add(double.Parse((dB3.Text)));
addDBList.Add(double.Parse((dB4.Text)));
addDBList.Add(double.Parse((dB5.Text)));
addDBList.Add(double.Parse((dB6.Text)));
for (int i = 0; i < addDBList.Count; i++)
{
added += Math.Pow(10, (i / 10));
}
final = 10 * Math.Log10(added);
totaldB.Text = final.ToString();
}
Run Code Online (Sandbox Code Playgroud)
}
公式基本上是 10log[10^(first value/10)+10^(second value/10)...+10^(nth value/10)]
这是场景:
public static <T> List<T> isTriggeredByBlackList(Map<String, T> params, Class<T> clz) {
System.out.println(clz.getName());
return null;
}
Run Code Online (Sandbox Code Playgroud)
我要的是通过其中String或List<String>以这种方法.
说到它String,它的工作正常:
Map<String, String> map1 = new HashMap<String, String>();
map1.put("11", "22");
isTriggeredByBlackList(map1, String.class);
Run Code Online (Sandbox Code Playgroud)
但是当我试图通过时List<String>,它出错了:
Map<String, List<String>> map = new HashMap<String, List<String>>();
List<String> l = new ArrayList<String>();
l.add("11");
l.add("22");
map.put("1", l);
isTriggeredByBlackList(map, List.class); //compile error!
Run Code Online (Sandbox Code Playgroud)
编译错误如下:
The method isTriggeredByBlackList(Map<String,T>, Class<T>) in the type CommonTest is not applicable for the arguments (Map<String,List<String>>, Class<List>)
Run Code Online (Sandbox Code Playgroud)
我需要的是只编写一个适用于String类型和List<String>类型的方法. …
这里的"数组"和"对象"都可能不是一个合适的术语,但我确信你得到了我的大陆漂移.
我看到这个示例用于从官方文档序列化/反序列化自定义对象:
product.Name = "Apple";
product.ExpiryDate = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };
string output = JsonConvert.SerializeObject(product);
//{
// "Name": "Apple",
// "ExpiryDate": "2008-12-28T00:00:00",
// "Price": 3.99,
// "Sizes": [
// "Small",
// "Medium",
// "Large"
// ]
//}
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(output);
Run Code Online (Sandbox Code Playgroud)
但我需要反序列化一个对象的"数组"作为JSON元素,如:
IEnumerable<Platypus> deserializedProduct = JsonConvert.DeserializeObject<Platypus>(output);
Run Code Online (Sandbox Code Playgroud)
...要么:
List<Platypus> deserializedProduct = JsonConvert.DeserializeObject<Platypus>(output);
Run Code Online (Sandbox Code Playgroud)
在JsonConvert/JSON.NET方面,需要做些什么才能实现这一目标?
我做了一个界面
public interface IEntity<T> where T:class
{
public Save(T entity);
public Update(T entity);
IEnumerable<T> GetAll();
T GetById(int id);
}
Run Code Online (Sandbox Code Playgroud)
现在,我有另一个类,其中我想创建此IEntity类型的列表.
public class myClass
{
public List<IEntity<T>> NewList = new List<IEntity<T>>(); // how to tell the compiler where T is class
}
Run Code Online (Sandbox Code Playgroud)
但是这给了我错误的说法
The type or namespace name 'T' could not be found (are you missing a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
为什么.NET Framework ArrayList类.Add方法在PowerShell实现中不起作用?
除非我另外纠正,否则我认为我的故事的整体道德可能是:不要假设本机PowerShell方法将与.NET方法相同,并且在PowerShell中尝试.NET方法时要小心.
我正在寻找的原始解决方案是从一个函数返回一个日期列表,作为一个数组,用户定义的日期范围作为参数.然后引用日期数组来移动和读取以日期戳命名的文件.
我遇到的第一个问题是创建一个动态数组.我不知道我在做什么,并且错误地.Add在@()数组声明上调用.NET 方法.
使用"1"参数调用"Add"的异常:"Collection具有固定大小."
我认为我需要找到一个动态数组类型,当我真正的问题是我做得不对时.这让我走向了一个不同的方向,直到很久以后,我发现应该使用+=语法将对象添加到PowerShell数组中.
无论如何,在我回到如何正确使用PowerShell数组之前,我在其他一些切线上了.
然后我找到了.NET ArrayList类.好的.现在我有一个动态数组对象.我阅读了文档,其中说我应该使用该.Add方法向集合中添加元素.
然后开始寻求更深入的理解,因为我经历了几天头脑紧张的挫折试图解决问题.
我制作了一个最初工作的实现.它产生了一个日期范围 - 但它也产生了一些奇怪的行为.我观察到奇怪的日期返回,例如:
0001年1月1日星期一12:00:00 AM
事实证明,我发现这是你执行此操作时获得的结果:
Get-Date 0
Run Code Online (Sandbox Code Playgroud)
该ArrayList被返回时,首先,索引值的数组元素的列表,然后将数组值.这根本没有任何意义.我开始探索我是否正确地调用函数,我是否遇到某种可变范围问题,或者我是否只是疯了.
我现在相当确信我的挫败感是由于缺乏一个可靠的初学者参考,不仅仅展示了如何进行简单数组实现的几个例子,而是用其他解决方案描述了一些注意事项.
让我在这里解释一下,实现数组/集合的三种方法,以及我试图生成的解决方案 - 即日期范围内的日期列表.
出于某种原因,我最初认为在Powershell中向.NET ArrayList添加元素的正确方法是使用.Add方法.它的记载.我仍然不明白为什么这不起作用(严重 - 有人请赐教).通过实验,我发现通过使用+=将对象添加到ArrayList 的方法,我可以获得准确的结果.
不要这样做.这绝对是错的.它会产生我上面描述的错误:
Function Get-DateRangeList {
[cmdletbinding()]
Param (
[datetime] $startDate,
[datetime] $endDate
)
$datesArray = [System.Collections.ArrayList]@() # Second method
for ($d = $startDate; $d -le $endDate; $d = $d.AddDays(1)) {
if ($d.DayOfWeek -ne 'Sunday') { …Run Code Online (Sandbox Code Playgroud) generic-list ×10
c# ×8
generics ×2
linq ×2
arraylist ×1
arrays ×1
datatable ×1
for-loop ×1
formula ×1
java ×1
json ×1
json.net ×1
lambda ×1
list ×1
merge ×1
powershell ×1
propertyinfo ×1
reflection ×1
winforms ×1