我正在使用C#在VS2005中开发Windows应用程序.在我的项目中,我生成dll并将它们存储在一个目录中.dll将命名为TestAssembly1,TestAssembly2,TestAssembly3等.
因此,请考虑以上三个dll是否在目录中.下次用户使用我的项目时,我需要生成像TestAssembly4,TestAssembly5等dll.
那么如何在文件夹中存储dll的计数并在下次使用项目时递增它们?
该目录甚至可以包含dll以外的文件.那我该怎么做呢?
我的项目生成一个 dll,当在调试模式下构建时,Visual Studio 2005 自动注册该 dll。但是当我尝试使用“regsvr32”在命令提示符中注册相同的 dll 时,我无法注册。我收到以下错误,
模块“..”加载失败。确保二进制文件存储在指定路径或对其进行调试以检查二进制文件或相关 .DLL 文件的问题。
但我已经准备好了所有依赖的 dll。这个问题的原因可能是什么?
我尝试使用以下命令注册和取消注册 dll,
regsvr32 dll_name.dll
regsvr32 /u dll_name.dll
我想知道一种从C#中的字符串数组中删除重复项的有效方法.
例如,
string[] a = { "abc", "xyz","abc", "def", "ghi", "asdf", "ghi","xd", "abc" };
Run Code Online (Sandbox Code Playgroud)
会变成,
string[] a = { "abc", "xyz","def", "ghi", "asdf", "xd" };
Run Code Online (Sandbox Code Playgroud)
删除重复条目后如何填补空白?有没有办法在不使用额外数组存储元素的情况下执行此操作?
我使用的方法:
1) Sorted the array
2) Replaced the duplicate entries with null
3) Copied NOT null string to a new array.
Run Code Online (Sandbox Code Playgroud)
但寻找一种优化的方法来做同样的事情.
编辑:我使用的是.NET 2.0和VS 2005
我正在学习 Java 8 流并且我正在尝试重构一个方法。
假设我有一个 School 类和一个school map按 Id 存储所有学校对象的类。每个学校对象都包含一个student map存储一群学生的对象。
在这种情况下,学生 ID 在学校中是唯一的。
我有一个函数可以通过所有学校的 id 检索学生。
public Student getStudent(Map<String, School> schoolMap, String studentId) {
return schoolMap.values().stream()
.map(School::getStudentIdToStudentMap)
.filter(map -> map.containsKey(studentId))
.map(map -> map.get(studentId))
.findAny().get();
}
Run Code Online (Sandbox Code Playgroud)
现在,我想更改该函数以schoolId用作过滤器(如果可用)。
public Student getStudent(Map<String, School> schoolMap,
String schoolId /* can be null */,
String studentId)
{
// TODO: Something that I have tried
return schoolMap.get(schoolId)
.getStudentIdToStudentMap()
.get(studentId);
}
Run Code Online (Sandbox Code Playgroud)
有什么好方法可以结合这两个功能吗?如果schoolId为空,则从所有学校获取学生。否则只是在特定学校中查找并检索学生?
Directory.GetFiles(targetDirectory);
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我们得到目录中所有文件的名称(即完整路径).但我只需要获取文件的名称而不是路径.那么如何除了路径之外单独获取文件的名称?或者我是否需要在删除不需要的部分时执行字符串操作?
编辑:
TreeNode mNode = new TreeNode(ofd.FileName, 2, 2);
Run Code Online (Sandbox Code Playgroud)
这ofd是一个OpenFileDialog并且ofd.FileName正在给出文件名及其路径,但我只需要文件名.
我有3个相同大小的列表(List1,2和3).我想遍历列表并对每个项执行操作.喜欢
for x in List1, y in List2, z in List3:
if(x == "X" or x =="x"):
//Do operations on y
elif(y=="Y" or y=="y"):
//Do operations on x,z
Run Code Online (Sandbox Code Playgroud)
所以我想仅为"List1或2的长度或大小"遍历列表,然后对x,y和z执行操作.我怎么能用Python做到这一点?
编辑:Python版本2.6.6
我将我的代码从一个java项目复制到另一个java项目,我得到错误:
对于String类型,方法isEmpty()未定义
但是同样isEmpty()适用于检查原始程序中的字符串.
相反,我可以使用str.length()==0.但想知道这是什么原因?
[edit] 所有这些都是在同一台机器上的同一个eclipse编译器版本1.7中完成的.即Windows - > Preferences - > Java - > Compiler,我发现"编译器合规级别为1.7".包括isEmpty工作的原始程序和不工作的新程序.
我的另一个项目isEmpty工作得很好.我创建了一个新的项目并复制了一部分具有isEmpty的代码,我收到了这个错误.
这可能是一个简单的Java流问题.说,我有一个List<Student>对象.
public class Student {
public String name;
public Set<String> subjects;
public Set<String> getSubjects() {
return subjects;
}
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得学生名单上的所有科目?
我可以使用for each循环来完成此操作.如何将以下代码转换为使用Streams?
for (Student student : students) {
subjectsTaken.addAll(student.getSubjects());
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试使用Java 8流.这给了我一个Incompatible types错误.
Set<String> subjectsTaken = students.stream()
.map(student -> student.getSubjects())
.collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud) 我有一个程序集asdf.dll,它有一个类'Class1'.
我怎样才能获得Class1的类型?
string a = "Class1"; //Class1 is the name of class in asdf.dll
string typeString = typeof(Class1).FullName; // here I only have the string Class1 and not Class Class1
AssemblyName assemblyName = AssemblyName.GetAssemblyName("asdf.dll");
Type type = Type.GetType(typeString + ", " + assemblyName);
Run Code Online (Sandbox Code Playgroud)
如何从包含类名的字符串中获取类的类型?
我需要在MS Access数据库中创建一个表.考虑一下,'ConfigStructure.mdb'是我的数据库名称,我需要在C#中用这个数据库创建一个表.
我怎样才能做到这一点?我尝试使用下面的代码,但它无法正常工作.
OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + frmMain.strFilePath + "\\ConfigStructure.mdb");
myConnection.Open();
string strTemp = " KEY Text, VALUE Text ";
OleDbCommand myCommand = new OleDbCommand();
myCommand.Connection = myConnection;
myCommand.CommandText = "CREATE TABLE table1(" + strTemp + ")";
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误,
"System.Data.OleDb.OleDbException: Syntax error in field definition
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)\r\n at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)\r\n at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)\r\n at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)"
Run Code Online (Sandbox Code Playgroud) c# ×5
java ×3
java-8 ×2
java-stream ×2
.net-2.0 ×1
collections ×1
dictionary ×1
eclipse ×1
for-loop ×1
hashmap ×1
python ×1
python-2.x ×1
string ×1