2013-05-17 2 views
3

아래와 같이 파이썬 함수가 있습니다. C#에서 함수를 호출하고 2 개의 목록 인수를 전달 하시겠습니까? 순위가 매겨진 목록을 반환합니다. 이게 가능하고 어떻게? 도움을 주셔서 감사합니다C#에서 파이썬 함수 호출

function ranking_option() #accepts two arguments: 
    def Ranking_Options(costs, savings): 
    ##Lets us form a list of list from the supplied data 

    rearranged_list = sorted([[costs[i], savings[i]] for i in range(len(costs))], reverse=False) 
    rankedlist = [rearranged_list[0]] #We form a new list of the ranked data coordinates 

    #Examine the sorted list one by one 
    for pair in rearranged_list[1:]: 

     if pair[0]>=rankedlist[-1][0] and pair[1]>=rankedlist[-1][1]: 
      rankedlist.append(pair) 
      if rankedlist[-2][0]==rankedlist[-1][0] and rankedlist[-2][1]<=rankedlist[-1][1]: 
       rankedlist[-2],rankedlist[-1]=rankedlist[-1],rankedlist[-2] 
     else: 

      if pair[0]==rankedlist[-1][0] and pair[1]>=rankedlist[-1][1]: 
       rankedlist[-1]=pair 
      rankedlist.append(pair) 
return rankedlist 
+0

IronPython http://ironpython.net/을 참조하십시오. –

+1

C#으로 다시 작성하지 않으시겠습니까? 그런 식으로 항상 배열에 의존하는 대신 유쾌한 형식을 도입 할 수 있습니다. –

답변

2

저는 C#에서 파이썬 COM 서버를 호출하는 것에 관한 블로그 게시물을 가지고 있습니다. 그것은 당신이하고자하는 일에 도움이 될 것입니다. COM은 interop를 더 쉽게 만들지 만, 설정하는 데는 약간의 작업이 필요합니다. http://www.midniteblog.com/?p=64