我所拥有的基本上是:
public class Object{
public bool IsObjectValid { set; get; }
}
public class MyThing{
public List<Object> Objects { set; get; }
}
Run Code Online (Sandbox Code Playgroud)
我想做的事:
public class ObjectsFiltered{
public List<Object> ValidObjects{
get{
var list = LFs.Sort<_LF> where (IsObjectValid == true);
return list;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道必须有一种方法来整理列表,过滤掉布尔真/假。我似乎无法完全理解 Linq。我似乎无法找到一个尖叫“啊哈!”的教程。关于 Linq Lambda 给我:/
我宁愿只返回一个子集,只保留一个“对象”活着......而不是我当前设置的多组列表。吻。
最终,我将使用 bool-toggles 在我的 WPF 表单上提供 TreeViews。
澄清:我认为目标是有一个列表(列表对象)和几个显示对象的过滤版本的属性。而不是拥有 Objects、ObjecstValid、ObjectsInvalid、ObjectsSomeOtherRuleSet……每个都有一个不同的 List……
我希望有一个列表来统治所有这些……并根据需要具有返回列表中的变体的属性。
Python 中列表或集合用法的每个示例似乎都包含整数的琐碎情况,但我有两个对象列表,其中 name 属性定义两个对象实例是否“相同”(其他属性可能具有不同的值)。
我可以创建一个包含两个列表中所有项目的列表,排序,
tmpList = sorted(list1 + list2, key=attrgetter('name'))
Run Code Online (Sandbox Code Playgroud)
但是我该如何做才能从第二个列表中选择 name 属性中具有相同值的列表项?
例如结合这两个列表
list1 = [obj('Harry',18), obj('Mary',27), obj('Tim', 7)]
list2 = [obj('Harry', 22), obj('Mary', 27), obj('Frank', 40)]
Run Code Online (Sandbox Code Playgroud)
会导致
list = [obj('Harry',22), obj('Mary', 27), obj('Tim', 7), obj('Frank', 40)]
Run Code Online (Sandbox Code Playgroud)
(我使用 obj() 作为具有两个属性的对象的简写符号。)
似乎我无法在大多数 set 和 list 函数中使用 attrgetter() 函数,就像使用 sorted() 函数一样,所以我不知道该怎么做。我怀疑我可以使用 lambda 函数,但我对函数式编程不太熟悉,所以我似乎无法弄清楚。
天真的解决方案(首先选择两个列表中唯一的所有项目,然后将该列表与第二个列表的剩余内容组合)似乎很冗长,因此在 Python 中必须有一种更简单的方法。
可能的重复:
如何并行迭代两个列表?
我有 2 个列表:
l = ["a", "b", "c"]
m = ["x", "y", "z"]
Run Code Online (Sandbox Code Playgroud)
我想同时遍历两者,如下所示:
for e, f in l, m:
print e, f
Run Code Online (Sandbox Code Playgroud)
必须显示:
a x
b y
c z
Run Code Online (Sandbox Code Playgroud)
问题是这完全是非法的。我怎么能做这样的事情?(以 Pythonic 的方式)
我需要对List<string>包含日语字母的a进行排序。我怎么能在 C# 中做到这一点?
我正在尝试做这样的事情(假设 $input 是用户提供的):
LIST = pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8 pre9 pre10
START = 0
for prefix in $(LIST); do \
if $(input) == $(prefix) then
START = 1
endif \
if $(START) == 1 then \
if [ -f $(prefix)<file_name> ]; then <do_A>; else <do_B>; fi
endif \
done
Run Code Online (Sandbox Code Playgroud)
我的问题是上面提到的两个 if。我不知道如何在迭代时从列表中选择特定的字符串值(如果 $(input) == $(prefix) then)并且我不知道如何检查值是 1 还是 0(如果 $(START) == 1 那么)。
我对这段代码的意图是对具有相同文件名但具有不同前缀的不同目录使用相同的 makefile。有时,一个目录可能包含具有不同前缀的文件的多个版本,我想定义这些前缀的层次结构(在我的示例中由 LIST 定义)。当用户提供一个版本时,想法是从他提供的版本开始搜索最新版本(例如,如果用户提供 pre4,那么我需要先搜索 pre4,如果它不存在 - 我将继续搜索 pre5 等等。但在此示例中,即使 pre1 确实存在于当前目录中,我也不会搜索它)。
任何人都知道我该怎么做?
提前致谢。
如何在函数中创建列表,附加到它,然后将另一个值传递给函数以附加到列表。
例如:
def another_function():
y = 1
list_initial(y)
def list_initial(x):
list_new = [ ]
list_new.append(x)
print list_initial
another_function()
list_initial(2)
Run Code Online (Sandbox Code Playgroud)
谢谢!
为什么这不起作用?
private List<Integer> xShot = new ArrayList<Integer>();
...codes
...codes
...codes
...codes
xShot.get(0) += 5;
Run Code Online (Sandbox Code Playgroud)
无法理解为什么赋值的左侧不是变量。
有人帮忙吗?
我想创建包含有关项目的详细信息的面板(包括左侧的缩略图),然后将它们添加到可滚动列表中。很像 iPhone 上的 iTunes 显示可用应用程序列表的方式。
我已经做了一些搜索,但到目前为止还没有找到任何帮助。
有没有人有任何想法或链接到他们想与我分享的样本。
提前致谢,罗布
拿一个简单的嵌套列表L:
L <- list(lev1 = list(lev2 = c("bit1","bit2")), other=list(yep=1))
L
#$lev1
#$lev1$lev2
#[1] "bit1" "bit2"
#
#
#$other
#$other$yep
#[1] 1
Run Code Online (Sandbox Code Playgroud)
还有一个向量,它提供了我要从中选择的每个部分的一系列深度L:
sel <- c("lev1","lev2")
Run Code Online (Sandbox Code Playgroud)
索引时我想要的结果是:
L[["lev1"]][["lev2"]]
#[1] "bit1" "bit2"
Run Code Online (Sandbox Code Playgroud)
我可以这样概括Reduce:
Reduce(`[[`, sel, init=L)
#[1] "bit1" "bit2"
Run Code Online (Sandbox Code Playgroud)
现在,我想扩展此逻辑以进行替换,如下所示:
L[["lev1"]][["lev2"]] <- "new val"
Run Code Online (Sandbox Code Playgroud)
,但是对于如何生成递归[[选择,我确实感到很困惑,这将使我也可以为其分配。