我有IList<T>
有数据,我想从IList访问字段值。
我在下面写了代码来获取字段值
IList<T> source;
source.FirstOrDefault().Field("ParentID")
我想访问ParentID字段值。
但是在构建解决方案时它会出现以下错误:
&#34;&#39; T&#39;不包含&#39; Field&#39;的定义没有扩展方法&#39; Field&#39;接受第一个类型&#39; T&#39;可以找到(你错过了使用指令或汇编引用吗?)&#34;
我添加了System.Xml,System.Xml.Linq和System.Collections.Generic程序集,但它仍然无法正常工作。有人可以帮忙吗?
答案 0 :(得分:3)
以下是一些仿制药101。
我们假设您有一个名为Node
的类,其中包含一个名为ParentID
的属性。
public class Node
{
public int ParentId { get; set; }
}
现在定义节点列表。基本上是一个对象数组。在List<T>
T
中,IList<Node> source;
指的是列表中的对象类型。所以你要这样定义:
source
然后您需要填充名为ParentId
的列表。
然后你可以用你编写的代码选择source.FirstOrDefault().Field("ParentID")
。
final DragSource dragSource = new DragSource(tv.getTree(), DND.DROP_MOVE | DND.DROP_COPY | DND.DragOver );
dragSource.addDragListener(new DragSourceAdapter(){
@Override
public void dragFinished(DragSourceEvent event) {
dragSource.dispose();
}
@Override
public void dragSetData(DragSourceEvent event) {
final TreeItem[] dndSelection = tv.getTree().getSelection();
final String[] sourceNames = new String[dndSelection.length];
String docName = "document";
for (int i = 0; i < dndSelection.length; i++) {
final TreeItem item = (TreeItem) dndSelection[i];
final PendingTreeNode node = (PendingTreeNode) item
.getData();
sourceNames[i] = node.getNodeId();
docName = node.getName();
}
final String filePath = AlfrescoFileUtil.getFileURL(sourceNames[0]);
final String viewDetailLink = AlfrescoFileUtil.getSearchFileURL(sourceNames[0]);
final String viewDetailsLabel = "View details";
StringBuffer finalS = new StringBuffer();
finalS.append("{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Calibri;}}{\\colortbl ;\\red0\\green0\\blue255;}{\\*\\generator Msftedit 5.41.21.2509;}\\viewkind4\\uc1\\pard\\sa200\\sl276\\slmult1\\lang9\\f0\\fs22{\\field{\\*\\fldinst{HYPERLINK \"" + filePath + "\"}}{\\fldrslt{\\ul\\cf1 " + docName + "}}}");
finalS.append(" | ");
finalS.append("{\\field{\\*\\fldinst{HYPERLINK \"" + viewDetailLink + "\"}}{\\fldrslt{\\ul\\cf1 "+ viewDetailsLabel + "}}}}}");
event.data = finalS.toString();
}
});
dragSource.setTransfer(new Transfer[]{RTFTransfer.getInstance()});
dragSource.notifyListeners(SWT.DragDetect, event);
答案 1 :(得分:0)
将source.FirstOrDefault()转换为适当的类,例如:((Employee)source.FirstOrDefault()).Field("ParentID")